2016-12-06 18 views
0

Lodashを使用して逆の順序で配列を反復処理したいとします。それは可能ですか?Lodashで配列を逆順に反復するには?

私のコードは以下のようになります。

var array = [1, 2, 3, 4, 5]; 
_.each(array, function(i) { 
    _.remove(array, i); 
}); 

私は_.pullAt(array, 0)新しい配列を行う[2, 3, 4, 5]です。すべての配列要素が1桁左にシフトされ、現在のインデックスが要素3を指しています。次の反復の後、3が削除されてから5になります。3番目の反復配列の後には削除できなかった[2, 4]が含まれます。

逆の順序で配列を反復処理すると、この問題は発生しません。 Lodashでは、配列を逆順に反復処理できますか?

+0

あなたは配列を空にしたいですか? –

+0

また、 '_.remove'と' _.pullAt'の両方はアンダースコアではありません。あなたはロダシを使っていますか? –

答えて

1

How do I empty an array in JavaScript?を参照してください。は武器を選択してください

それ以外の場合、厳密に質問に答えて、配列の長さから0までのインデックスを繰り返すには、"down-to" --> operator を使用できます。しかし、これは実際には必要ではありません。この場合は、.pop functionで十分ですので、アンダースコアは必要ありません。

var arr = [1, 2, 3, 4, 5], 
 
    index = arr.length; 
 

 
while (index --> 0) { 
 
    console.log(index); 
 
    arr.pop(); 
 
} 
 
console.log(arr);

質問で参照機能を示すように見えるようにあなたがLodashを使用している場合は、_.eachRightを使用することができます。

var arr = [1, 2, 3, 4, 5]; 
 

 
_.eachRight(arr, function(value) { 
 
    console.log(value); 
 
    arr.pop(); 
 
}); 
 

 
console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>


ダウンにオペレータが存在し、>比較続くだけ--デクリメントでありません。

+0

_.eachRightはうまくいきました。 –