javascript配列内のすべての要素に変更された値がコピーされている理由を理解できません。誰かがなぜそのコンセプトを説明できますか?上記のコードリターンのjavascript配列を変更して配列にプッシュすると、配列のすべての要素にコピーされます。
var obj = {x:12};
var arr =[];
for(var i=0;i<5;i++){
obj["x"] = i;
arr.push(obj);
println("Inside -> " + JSON.stringify(arr));
}
println("Output -> " + JSON.stringify(arr));
出力 -
Inside -> [{"x":0}]
Inside -> [{"x":1},{"x":1}]
Inside -> [{"x":2},{"x":2},{"x":2}]
Inside -> [{"x":3},{"x":3},{"x":3},{"x":3}]
Inside -> [{"x":4},{"x":4},{"x":4},{"x":4},{"x":4}]
Output -> [{"x":4},{"x":4},{"x":4},{"x":4},{"x":4}]
あなたが割り当てるときにもXを更新することができます - 'constのobjcopyを= Object.assign({}、OBJ 、{x:i}); ' –
@OriDroriはい、ほとんどの現実的なケースでは便利ですこの例ではあまり意味がないと思った。 – sabithpocker