8

スプライスの理解に問題があり、助けが必要です。

jsfiddleを確認してください。

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

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

値はreturnを持っていると想定されています'c, b'

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

この方法の何が問題になっていますか?

どうもありがとうございます。

4

4 に答える 4

19

.splice 削除されたアイテムを返しますただし、内部で配列を操作することもできます。これにより、何かをチェーンすることができなくなります.splice。2 つの別々の呼び出しを行う必要があります。

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

を行うvalue = value.splice(...)と、valueオーバーライドされ、配列が失われます!

于 2013-02-26T06:15:30.200 に答える
9

.spliceはインプレースであるため、を削除するだけで、value =期待どおりに配列が変更されます。

> var value = "c, a, b";
> value = value.split(', ');
["c", "a", "b"]
> value.splice(1, 1);
["a"]
> value
["c", "b"]
于 2013-02-26T06:16:37.623 に答える