2016-02-12 11 views
16

Znalazłem o operacjach tablic JavaScript Unshift, shift, push, popJavaScript głowa i ogon na tablicy bez mutacji

Jednak wszystkie te operacje mutują tablicę.

Czy jest jakiś sposób wykorzystania tych funkcji bez powodowania mutacji w danych pierwotnych?

Czuję, że odczytanie danych nie powinno powodować mutacji.

+0

Masz na myśli tylko dostępie do indeksów? Jak 'var test = [1, 2, 3, 4]; var a = test [test.length - 1] 'gdzie' a' ma teraz ostatni element? – JosephGarrone

+0

Ogon nie jest ostatnim elementem. tak indeksatory są łatwe. ale chciałem kodować bez indeksatorów i po prostu uzyskać dostęp do nagłówka tablicy. –

+3

Co powinno "pchać", które nie zmutuje tablicy? – JJJ

Odpowiedz

41

Można użyć:

var head = arr[0]; 
var tail = arr.slice(1); 

albo w ES6:

const [head, ...tail] = arr; 
+1

Proste i na temat :-) Dzięki. – SagiSergeNadir

1

Zaakceptowanych odpowiedź jest dobra, ale dla bardziej funkcjonalnego podejścia:

Heads

I d użyj find, który zwraca pierwszy element, który zwraca wartość true-thy w swoim predykacie.

Jeżeli jesteś pewien, Twoje wartości są prawdziwe-thy, można napisać go w następujący sposób:

arr.find(Boolean) 

Jeśli chcesz pierwszą wartość, niezależnie od jego wartości, można napisać go w następujący sposób:

arr.find(_ => true) 

Tails

Podobnie jak inni stwierdzają, stosowanie plaster

arr.slice(1); 
1

chciałbym zrobić używając ES6 jak wyżej

const head = ([h]) => h; 
const tail = ([, ...t]) => t; 

const arr = [1,2,3,4,5]; 

alert(head(arr)); 
Powiązane problemy