2016-09-14 10 views
1

配列を複製したい場合は、slice()関数を使うことができますが、1つの要素を "複製"したい場合はどうすればいいですか?私はこのような何かをしたい:Javascript:配列の1つの要素の値を同じ位置の別の配列にコピーするにはどうすればよいですか?

array1[i] = array2[i]; 

しかし、私は値ではなく、参照をコピーしたい。 どうすればいいですか?また、連想配列のソリューションも機能しますか?例:

array1["one"] = array2["one"]; 

ありがとうございます。

+0

JavaScriptは連想配列を持たず、オブジェクトリテラルであり、順序はありません。 – charlietfl

+0

jQueryを使用している場合、配列を複製したい場合は、slice()関数を使用できます。できません。 – Redu

答えて

0

あなたがObject.assignArray.splice

var cloneItem = Object.assign({}, array1[i]); 
    array2.splice(i, 0, cloneItem); 

EDIT
以前を使用することができますが、右に要素の残りの部分を押して、位置にクローンアイテムを追加します。

array1[i] = Object.assign({}, array2[i]); 

をしかし、アレイのプリミティブがある場合、それは動作しません:あなたは、単に交換したい場合は、単に

array2[i] = Object.assign({}, array1[i]); 
0

あなたはこれを行うことができません。 (入れ子構造のいずれかの参照を残さずに)適切に配列をクローニング

array1[i] = array2.slice(i, 1); 
0

はそれほど単純ではありません:あなたが書いたように また、あなたはスライス方式を使用することができます。それにはツールが必要です。残念ながら、標準的な配列メソッドの一部ではありません。あなたはそれを自分で開発しなければなりません。このような

Array.prototype.clone = function(){ 
    return this.map(e => Array.isArray(e) ? e.clone() : e); 
}; 

あなたの手で、このツールを持っていたら、最初の配列のクローンを作成して、あなたが望むクローン配列のどんなアイテムに割り当てることができます。 array1[i] = array2.clone()[i];

関連する問題