Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript json数组对象引用分配让我感到困惑 var arr=[{“val”:0},{“val”:1},{“val”:2},{“val”:3},{“val”:4},{“val”:5}]; var arrCopy=[]; 对于(变量i=0;i_Javascript_Arrays_Json - Fatal编程技术网

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;