2016-04-22 79 views
2

我有一個普通類的按鈕(buttons)。我怎樣才能以相反的順序將它們的IDs添加到數組中?按相反順序創建數組

var yourArray = []; 
$('.buttons').each(function() { 
    yourArray.push($(this).prop('id')); 
}); 
+0

'array.unshift()'簡單的東西? – evolutionxbox

+0

在循環外部添加'yourArray.reverse();' – Mihai

+0

@Mihai - 這不就是顛倒已經創建的數組嗎? 'unshift'至少允許從後到前創建一個陣列(「以相反的順序」) – evolutionxbox

回答

4

您可以通過添加每個元素使用unshift()數組的開始創建數組:

var yourArray = []; 
$('.buttons').each(function() { 
    yourArray.unshift(this.id); 
}); 

或者你可以在當前爲了創建它,然後它reverse()。另外請注意,您可以使用map()最初創建數組:

var yourArray = $('.buttons').map(function() { 
    return this.id; 
}).get().reverse(); 

最後,你可以使用this.id,而不是創建一個jQuery對象只是訪問,而無需創建對象的訪問已經一個屬性。

+1

@Becky POJS數組沒有'each()'方法。你應該使用普通的'for'循環或$ .each(yourArray,function(){...});' –

+0

是否可以在現有的'each()'函數內顛倒順序? $('。buttons')。each(function(){' – Becky

+1

這就是第一個代碼示例正在做什麼 –

2

你可以做map()reverse()

var yourArray = $('.buttons').map(function() { 
 
    return this.id; // get the id 
 
}) 
 
.get() // get the array 
 
.reverse(); // reverse the array 
 

 
console.log(yourArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button id="a" class="buttons"></button> 
 
<button id="b" class="buttons"></button>

+0

如果我需要在另一個'each(function(){'? – Becky

+0

'yourArray.forEach(function(v){......)中使用新創建的數組, ..................................});',使用'forEach'或'$ .each() ' –

+0

謝謝,我想在現有的'each()'函數中使用它,我嘗試了'yourArray.each(function(){...});'似乎沒有工作 – Becky