2013-02-26 9 views
6

私はスプライスを理解するのに問題があり、助けてもらいたい。js。 spliceは削除したアイテムを返しますか?

jsfiddleを確認してください。

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

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

値が想定され、戻り'c, b'を持っています。

ただし、'a'を返します。

この方法にはどのような問題がありますか?

ありがとうございました。

+1

私はあなたが求めているのかわからないんだけど。はい、 'splice'は削除されたアイテムを返し、出力はあなたが削除したアイテムなので' a'となっています。問題はどこですか? – melpomene

答えて

10

.spliceは削除されたアイテムを返します。しかし、内部的にも配列を操作します。これにより、何かをチェーンすることができなくなります.splice;あなたがvalue = value.splice(...)value上書きされない、そして配列が失われた場合

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

:あなたは、2つの別々の呼び出しを行う必要があります!

+0

ありがとうございます!!!!! – Till

6

.spliceは、インプレースで、これだけvalue =を削除して、あなたが期待するように、それは、配列を変更します:

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

ありがとうございます! – Till

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

これは質問に答えるかもしれませんが、いくつかのコメントや説明がうまくいくでしょう。それは他のユーザーにも役立ちます。 – VDWWD

関連する問題