2013-05-27 2 views

Antwort

8

Nur reverse the array bevor Sie es iterieren?

lister.reverse(); 

Um Ihre _.each() vs for loop Frage, have a look here zu beantworten.

+13

wird es das Array ändern, so hat es schwerwiegende Nachteil der Iteration in umgekehrter Reihenfolge – user2846569

7

Unterstreichung gibt Ihnen keine Möglichkeit, eine Sammlung in umgekehrter Reihenfolge zu iterieren, nur weiterleiten. Das Umkehren des Arrays löst das Problem genauso wie das Umkehren der Art, wie die Elemente in das Array eingefügt werden.

Eine mögliche Lösung für in umgekehrter Richtung durchlaufen wird wieder auf Normal Javascript fallen:

for (var i = arr.length; i-- > 0;) 
0

Alle diese Antworten werden das Array mutieren, welche nicht das, was er tun will, es sei denn, Sie eine andere .reverse hinzufügen möchten() nach jedem Mal, wenn Sie es ausführen.

Aber da oyu loDash verwenden, können Sie dies leicht vermeiden, indem das Array innerhalb eines Klons oder cloneDeep Verpackung innerhalb der each() nennen

var letterArray = [ 'a', 'b', 'c', 'd', 'e' ]; 
_.each(_.clone(letterArray).reverse(), function(v, i) { 
    console.log(i+1); 
}); 

dies 5 log, 4, 3, 2, 1 ohne das ursprüngliche Array zu beeinflussen.

Verwandte Themen