场景如下
var arr= new Array(2).fill({})
for(var i=0;i<2;i++){
arr[i]["a"+i]=i
}
console.log(arr)
输出结果是
[
{"a0":0,"a1":1},
{"a0":0,"a1":1}
]
变成是arr[0]和arr[1]都指向了一个对象{};
正确做法是
var arr= new Array(2)
for(var i=0;i<2;i++){
arr[i]={}//先定义,到单独出来一行大家看着明显点
arr[i]["a"+i]=i
}
console.log(arr)
结果是
[
{"a0":0},
{"a1":1}
]