在特定位置的数组映射中推送值[重复]
Posted
技术标签:
【中文标题】在特定位置的数组映射中推送值[重复]【英文标题】:push value in map of arrays at a specific postition [duplicate] 【发布时间】:2018-03-20 09:14:47 【问题描述】:我正在使用这个创建一个数组映射:
var m = new Map(Array(40).fill(new Array()).entries());
现在,我想在这些数组中推送值。但是当我这样做时:
m.get(1).push(10)
值 10 被推入所有数组,而不是第一个位置。
【问题讨论】:
【参考方案1】:fill
得到single array
并使用它来填充给定数组的所有行,它不会为每一行创建一个新数组。这意味着您的单个数组引用在所有行之间共享。因为array
是一个引用类型,所以你使用单引用来操作它,所以实际对象发生了变化。您可以通过比较每一行的引用来检查这一点。
const arr = new Array(2).fill(new Array());
console.log(arr[0] === arr[1]);
关于创建单独的数组,可以看上面@Nina的回答
【讨论】:
你只是在确认 OP 发现了什么...... 需要每个答案才能完整回答问题,各个方面??? 不能将某个部分引用到另一个部分吗? 这不能回答问题。您没有解释如何仅在“地图”的一个位置正确设置值。 另见上述评论【参考方案2】:您可以采用另一种模式来构建独立数组。
var m = new Map(Array.from( length: 40 , _=> []).entries());
m.get(1).push(10);
console.log([...m]);
【讨论】:
以上是关于在特定位置的数组映射中推送值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 1D NumPy 数组中查找值的索引/位置(具有相同的值)[重复]