2017-12-22 18 views
0

私は配列a1への参照があります。私は特別な値の配列を持っていますa2a2のすべての値をa1に連結したい場合は、元の配列をに変更します。JavaScriptの突然変異体concat

concat()を使用すると、変異していないため、機能しません。たとえば:

var a0 = [1,2,3]; 
var a1 = a0; 
var a2 = [4,5,6]; 
a1 = a1.concat(a2); 
console.log(a1); // [1,2,3,4,5,6] YAY 
console.log(a0); // [1,2,3]  BOO 

のようなものよりも、この他を行うには良い方法があります:push() methodを変異させると、複数の引数を受け取り

for (var i=0; i<a2.length; ++i) a1.push(a2[i]); 
+0

おかげ+ Barmarを。私は重複がなければならないと確信していました。しばらく検索しましたが、何とかそれを見つけることができませんでした。 – Phrogz

答えて

0

apply() methodを使用することによって、あなたはpush()にパラメータとしてa2からすべての値を渡すことができますアクションで

// Mutate a1 to have all the values of a2 added 
a1.push.apply(a1, a2); 

var a0 = [1,2,3]; 
var a1 = a0; 
var a2 = [4,5,6]; 
a1.push.apply(a1, a2); 
console.log(a1); // [1,2,3,4,5,6] YAY 
console.log(a0); // [1,2,3,4,5,6] YAY!!