我有一张细胞表,需要根据我得到的数据在几个特定位置进行处理
let arr = Array(3).fill(Array(3).fill(0));
[{x: 0, y: 0, value: 1}, {x: 1, y: 0, value: 2},{x: 2, y: 0, value: 3}].map(pos =>
arr[pos.x][pos.y] = pos.value
)
console.log(arr)
我希望代码能够给出,[[1,0,0],[2,0,0],[3,0,0]]
但是相反,它给出[[3,0,0],[3,0,0],[3,0,0]]
,换句话说,它将所有内容绘制为最后一个y
(值3),并且[pos.x]
由于某种原因而忽略,不确定原因。
我希望获得一些可能的解决方法的帮助,以解释为什么此代码无法按预期工作
提前致谢!
尝试以下方法:
var arr = Array.from({length:3},()=>Array(3).fill(0));
[{x: 0, y: 0, value: 1}, {x: 1, y: 0, value: 2},{x: 2, y: 0, value: 3}].map(pos =>
arr[pos.x][pos.y] = pos.value
)
console.log(arr);
该Array.from()
方法从array-like
或iterable
对象创建一个新的,浅表复制的Array实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句