Sagen wir, ich habe ein Array:Wie kann ich alle vorherigen Elemente in einem JavaScript-Array als einen aktuellen Wert zurückgeben?
var myArr = new Array('alpha','beta','gamma','delta');
Und das möchte ich eine Funktion ein Array aller Elemente vor einem bestimmten Artikel zurückgeben:
function getAllBefore(current) {
var myArr = new Array('alpha','beta','gamma','delta');
var newArr = ???
return newArr;
}
getAllBefore('beta'); // returns Array('alpha');
getAllBefore('delta'); // returns Array('alpha','beta','gamma');
Was ist der schnellste Weg, dies zu umgehen? Kann ich ein Array auf einen Wert aufteilen? Muss ich jede einzelne Schleife wiederholen und ein neues Array im laufenden Betrieb erstellen? Was empfehlen Sie?
Was ist, wenn ich das Gegenteil wollte, d. H. getAllAfter()
?
Verwenden 'indexOf' Versuchen Sie, die Position des ersten Elements zu erhalten, die dem entspricht, was Sie suchen. Verwenden Sie dann 'slice' von 0 bis zum Index – Ian
Verwenden Sie' .indexOf() ', um die Übereinstimmung und' .slice() 'zu finden, um eine Kopie eines Teils des Arrays zu erstellen. – jfriend00
Keine Notwendigkeit für Slice, legen Sie einfach die Länge auf den Index + 1 (solange die Änderung des Originals in Ordnung ist). :-) Array.prototype.indexOf ist ES5 und benötigt möglicherweise zusätzliche Unterstützung für ältere Browser. – RobG