2013-02-26 12 views
6

Mam problem ze zrozumieniem splice i chcę uzyskać pomoc.js. splice zwraca usunięty element?

Proszę sprawdzić jsfiddle.

http://jsfiddle.net/fantill/TbpWf/1/

value = "c, a, b" 
value = value.split(',').splice(1, 1).join(',') 
alert(value); 

wartość ma mieć zwrot 'c, b'.

Jednak zwraca 'a';

Co jest nie tak z tą metodą?

Dziękuję bardzo.

+1

nie jestem pewien co pytasz. Tak, 'splice' zwraca usunięte elementy, a wyjście ma być' a', ponieważ to właśnie zostało usunięte. Gdzie jest problem? – melpomene

Odpowiedz

10

.spliceczy zwraca usunięty element. Jednak także manipuluje on tablicą wewnętrznie. Zapobiega to łańcuchowaniu do .splice; trzeba zrobić dwie osobne połączenia:

value = value.split(','); 
value.splice(1, 1); 
console.log(value.join(',')); 

Jeśli nie value = value.splice(...), value jest przesłonięta, a tablica jest stracone!

+0

dziękuję bardzo !!!!! – Till

6

.splice jest w miejscu, więc po prostu usunąć value = i będzie to zmodyfikować tablicę jak można się spodziewać:

> var value = "c, a, b"; 
> value = value.split(', '); 
["c", "a", "b"] 
> value.splice(1, 1); 
["a"] 
> value 
["c", "b"] 
+0

dziękuję bardzo !!! – Till

2
var a = ["1","2","3"] 
a.splice(1,1) && a 
a=["1","3"] 
+4

Chociaż może to odpowiedzieć na pytanie, niektóre komentarze i/lub wyjaśnienia byłyby miłe. Pomoże to również innym użytkownikom. – VDWWD