質問

私はsplice()メソッドを実験していました jconsole

a = [1,2,3,4,5,6,7,8,9,10]
1,2,3,4,5,6,7,8,9,10

ここでは、Aは1〜10の単純な配列です。

b = ['a','b','c']
a,b,c

これはbです

a.splice(0, 2, b)
1,2
a
a,b,c,3,4,5,6,7,8,9,10

アレイBをスプライスの3番目の引数に渡すと、「Aの最初の2つの引数をインデックスゼロを削除し、Bアレイに置き換える」を意味します。 ArrayをSplice()の3番目の引数として渡すのを見たことがありません(すべて 私が読んだガイドページ 議論のリストについて話してください)、しかし、まあ、それはトリックをしているようです。 [1,2]は除去され、現在は[a、b、c、3,4,5,6,7,8,9,10]です。次に、別の配列を作成します。これをCと呼びます。

c = ['one','two','three']
one,two,three

そして、同じことをしてみてください:

a.splice(0, 2, c)
a,b,c,3
a
one,two,three,4,5,6,7,8,9,10

今回は、4(2の代わりに)要素が削除され[a、b、c、3]、最初にCアレイが追加されます。誰かが理由を知っていますか?解決策は些細なことだと確信していますが、今はわかりません。

役に立ちましたか?

解決

Array.splice します いいえ 3番目のパラメーターとして配列をサポートします。
参照: https://developer.mozilla.org/en/javascript/reference/global_objects/array/splice

使用 Firebug (またはChrome's Console)、実際に何が起こるかを見ます:

a.splice(0, 2, b)
> [1, 2]
a
> [["a", "b", "c"], 3, 4, 5, 6, 7, 8, 9, 10]

ここで問題はJConsoleです toString() 配列を印刷するには Array.toString() 印刷しません [].

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top