2013-02-26 7 views
6

Ho problemi di comprensione dello splice e voglio avere aiuto.js. la giuntura restituisce l'articolo rimosso?

Si prega di controllare il jsfiddle.

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

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

il valore si suppone che hanno ritorno 'c, b'.

Tuttavia, restituisce 'a';

Cosa c'è di sbagliato con questo metodo?

Grazie mille.

+1

Non sono sicuro di quello che stai chiedendo. Sì, 'splice' restituisce gli elementi rimossi e l'output dovrebbe essere' a' perché questo è ciò che hai rimosso. Dov'è il problema? – melpomene

risposta

10

.splicefa restituisce l'articolo rimosso. Tuttavia, manipola anche l'array internamente. Ciò ti impedisce di concatenare nulla a .splice; è necessario fare due chiamate distinte:

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

Se lo fai value = value.splice(...), value viene sovrascritto, e l'array è perduto!

+0

grazie mille !!!!! – Till

6

.splice è sul posto, quindi basta rimuovere il value = e sarà modificare l'array come ci si aspetterebbe:

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

grazie mille !!! – Till

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

Sebbene questo possa rispondere alla domanda, alcuni commenti e/o spiegazioni sarebbero carini. Ciò aiuterà anche gli altri utenti. – VDWWD

Problemi correlati