Javascript json数组对象引用分配让我感到困惑 var arr=[{“val”:0},{“val”:1},{“val”:2},{“val”:3},{“val”:4},{“val”:5}]; var arrCopy=[]; 对于(变量i=0;i
你只是在语法上有一个小错误;不要在每个Javascript json数组对象引用分配让我感到困惑 var arr=[{“val”:0},{“val”:1},{“val”:2},{“val”:3},{“val”:4},{“val”:5}]; var arrCopy=[]; 对于(变量i=0;i,javascript,arrays,json,Javascript,Arrays,Json,你只是在语法上有一个小错误;不要在每个{“val”,0}映射中使用逗号,而是使用冒号:{“val”:0}。因此,将arr更改为 <script> var arr = [{"val":0},{"val":1},{"val":2},{"val":3},{"val":4},{"val":5}]; var arrCopy = []; for(var i=0; i < arr.length; i++){ var tmp = arr[i]; arrCopy.push(tmp
{“val”,0}
映射中使用逗号,而是使用冒号:{“val”:0}
。因此,将arr
更改为
<script>
var arr = [{"val":0},{"val":1},{"val":2},{"val":3},{"val":4},{"val":5}];
var arrCopy = [];
for(var i=0; i < arr.length; i++){
var tmp = arr[i];
arrCopy.push(tmp);
}
for(var j=0; j < arrCopy.length; j++){
arrCopy[j].val = arrCopy[j].val+1;
}
console.log("arr:", arr); //resullt: [{"val",1},{"val",2},{"val",3},{"val",4},{"val",5},{"val",6}]
console.log("arrCopy", arrCopy);//resullt: [{"val",1},{"val",2},{"val",3},{"val",4},{"val",5},{"val",6}]
</script>
通过这样做,您的意思是有一个从
“val”
到冒号右边数字的映射。问题是当您说
var arr = [{"val":0},{"val":1},{"val":2},{"val":3},{"val":4},{"val":5}];
最好这样做
tmp = arr[i] // it's just a reference of {"val":0} to tmp not a copy.
对我又编辑了一次,实际上我犯了一个错误,这就是我现在的问题!为什么它们打印相同的数组?
var tmp = {};
tmp.val = arr[i].val;