2013-01-18 10 views
26

Wie wird diese Transformation durchgeführt?Schicht-Array von N bis zum letzten Element

["a","b","c","d","e"] // => ["c", "d", "e"] 

Ich dachte, dass slice dies tun können, aber ..

["a","b","c","d","e"].slice(2,-1) // [ 'c', 'd' ] 
["a","b","c","d","e"].slice(2,0) // [] 

Antwort

52

nicht das zweite Argument Verwenden Sie:

Array.slice(2); 

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice

Wenn das Ende nicht angegeben ist, wird das Segment an das Ende der Sequenz extrahiert.

+0

ok ... aber was, wenn ich nicht vorhersagen kann, ob das Ende der Scheibe definiert wird oder nicht. In Python haben wir str [start: None], um bis zum Ende zu schneiden. Wie kann ich es gleich auf Javascript machen? – yota

+0

@yota Wenn Sie die Länge des Arrays kennen, können Sie das als zweites Argument übergeben: 'arr.slice (2, arr.length)'. Wenn das zweite Argument die Array-Länge überschreitet, gibt es immer noch "begin" bis zum Ende der Sequenz zurück. Wenn das für Sie nicht funktioniert, benötigen Sie eine if-Anweisung. –

4

einfach den Startindex geben, wie Sie Rest der Daten aus dem Array wollen ..

["a","b","c","d","e"].splice(2) => ["c", "d", "e"] 
4

Eine wichtige Überlegung auf die Antwort von @insomniac Zusammenhang ist, dass splice und slice sind zwei völlig unterschiedliche Funktionen, mit dem Hauptunterschied ist:

  • splice das ursprüngliche Array manipuliert.
  • slice gibt eine Untergruppe des ursprünglichen Arrays zurück, wobei das ursprüngliche Array unberührt bleibt.

Siehe: http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html für weitere Informationen.

Verwandte Themen