2013-01-18 15 views
26

Jak dokonać tej transformacji?macierz od N do ostatniego elementu

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

Myślałam że slice może to zrobić, ale ..

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

Odpowiedz

52

Nie stosować drugi argument:

Array.slice(2); 

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

Jeśli pominięto koniec, plasterek wyodrębnia się do końca sekwencji.

+0

ok ... ale co, jeśli nie mogę przewidzieć, czy koniec plasterka zostanie zdefiniowany czy nie. W pythonie mamy str [start: None], aby wyciąć do końca. Jak mogę to zrobić w javascript? – yota

+0

@yota Jeśli znasz długość tablicy, możesz podać ją jako drugi argument: 'arr.slice (2, arr.length)'. Jeśli drugi argument przekroczy długość tablicy, nadal będzie zwracał 'begin' aż do końca sekwencji. Jeśli to nie działa, będziesz potrzebować instrukcji if. –

4

Daj indeks początkowy, jak chcesz resztę danych z tablicy ..

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

Ważną kwestią odnoszącą się do odpowiedzi przez @insomniac że splice i slice są dwie zupełnie różne funkcje, z główną różnicą:

  • manipuluje oryginalną tablicą.
  • slice zwraca podtytuł oryginalnej tablicy, przy czym pierwotna tablica pozostaje nietknięta. Aby uzyskać więcej informacji,

Zobacz: http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html.

Powiązane problemy