2

この JavaScript では、なぜ私は得られないのazbcですか?

var x = "a-b-c".split('-').splice(1, 0, 'z');
alert(x.join(''));

splitabおよびを含む配列を返しますc

後にsplice挿入してはいけませんか?zaazbc

空の配列を取得するのはなぜですか?

注:私が望むことは、次の方法で達成できることを知っています:

var x = "a-b-c".split('-')
x.splice(1, 0, 'z');
alert(x.join(''));

splice元の配列自体を「変更」するためです。に変更{a,b,c}してから{a,z,b,c}割り当てるべきではありませんxか?

わかりました...以下のコードは私が理解するのに役立ちました。

var x = "a-b-c".split('-')
x = x.splice(1, 0, 'z');
alert(x.join(''));
4

4 に答える 4

6

splice新しい配列ではなく、配列から削除された項目を返します。

> x = 'a-b-c'.split('-');
["a", "b", "c"]
> x.splice(1,0,'z');
[]
> x
["a", "z", "b", "c"]
> x.splice(1,1,'x');
["z"]
> x
["a", "x", "b", "c"]
于 2012-06-01T05:52:56.070 に答える
1

パオロが言ったように、スプライスは配列をその場で変更しますhttp://jsfiddle.net/k9tMW/

var array = "a-b-c".split('-');
array.splice(1, 0, 'z');
alert(array.join(''));
于 2012-06-01T05:54:38.660 に答える
1

Mozilla Developer Network-Array スプライス メソッド- 古い要素を削除しながら新しい要素を追加して、配列の内容を変更します。

戻り値- 削除された要素を含む配列。要素を 1 つだけ削除すると、1 つの要素の配列が返されます。

var x = "a-b-c".split('-');
x.splice(1, 0, 'z');
document.write(x + "<br />"); 
于 2012-06-01T05:54:41.047 に答える
1

あなたはこのようにしなければなりません、

var x = "a-b-c".split('-');
x.splice(1, 0, 'z');
alert(x.join(''));​
于 2012-06-01T05:58:16.797 に答える