2017-07-10 1 views
1

Kann ein Array nur bis zu einem bestimmten Index zugeordnet werden?End-Array-Map bei einem Index?

Zum Beispiel sagen, ich habe folgendes:

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

Ich möchte die Zahlen im Array zusammenzufassen, sondern nur auf den dritten Index nach oben. Ist es möglich, ein Argument an Array.map() zu übergeben, um nur bis zu einem bestimmten Index zu gehen? Oder ist das nur mit einer for Schleife möglich?

+2

Warum Sie verwenden Karte() zusammenzufassen? reduce() wäre besser – epascarello

+0

Für etwas so einfaches wie Ihr Beispiel wäre 'nums [0] + nums [1] + nums [2]' meine Wahl. Für kompliziertere Funktionen und größere Arrays (und Sub-Arrays) möchten Sie möglicherweise eine eigene Funktion erstellen, um die Iteration mit einer einfachen "for" -Schleife durchzuführen, um das Kopieren und unnötige Iterationen zu vermeiden. – Pointy

+0

Sorry, ich wollte sagen zu reduzieren :( – MarksCode

Antwort

8

Verwenden Sie einfach slice.

The slice() method returns a shallow copy of a portion of an array into a new array object selected from begin to end (end not included). The original array will not be modified.

nums.slice(0,3).map(...); 
+0

Dies ist ein guter Weg, um fortzufahren, aber es sollte beachtet werden Das '.slice()' erzeugt ein neues Array und kopiert Elemente über den angeforderten Bereich hinein.Wenn das eigentliche Problem, das gelöst wird, ein großes Originalarray beinhaltet und der tatsächliche Bereich ebenfalls ziemlich groß ist, wäre dies teurer als die Verwendung von einfache 'for' Schleife. – Pointy

0

können Sie slice() verwenden Array bis zu einem bestimmten Index

nums.slice(0,3).map(); 
2

Per Definition zu erhalten, Karte() auf jedes Element im Array genannt. Weitere Informationen finden Sie in der Dokumentation here. Also, ja, Sie müssten eine andere Lösung wie eine for-Schleife verwenden.

Verwandte Themen