在特定的帖子中推送数组映射中的值

时间:2017-10-09 08:18:55

标签: javascript

我正在使用它创建一个数组映射:

var m = new Map(Array(40).fill(new Array()).entries());

现在,我想推送那些数组中的值。但是当我这样做时:

m.get(1).push(10)

值10被推入所有数组而不是第一个位置的数组。

2 个答案:

答案 0 :(得分:1)

fillsingle array使用它来填充给定数组的所有行,它不会为每一行创建一个新数组。这意味着您的单个数组引用在所有行之间共享。因为array是引用类型,所以使用单引用来操作它,因此实际对象会发生更改。您可以通过比较每行的引用来检查这一点。



const arr = new Array(2).fill(new Array());

console.log(arr[0] === arr[1]);




要创建单独的数组,您可以看到 @ Nina的回答

答案 1 :(得分:1)

你可以采用另一种模式来构建独立的数组。

var m = new Map(Array.from({ length: 40 }, _=> []).entries());
m.get(1).push(10);

console.log([...m]);