2016-04-22 15 views
2

共通のクラス(buttons)のボタンがあります。 IDを逆の順序で配列に追加するにはどうすればよいですか?逆順で配列を作成

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(); 

最後に、あなただけのオブジェクトの作成を必要とせずに、すでにアクセスプロパティにアクセスするためにjQueryオブジェクトを作成するのではなく、this.idを使用することができます。

+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

ありがとうございます。私は' yourArray.each(function(){...});}を試してみましたが、動作していないようです。 – Becky