我不能在Array-constructor创建的数组上使用.map
并设置长度:
// create an array with 9 empty elements
let array = new Array(9);
// assign an array to each of the array's elements
array = array.map(() => new Array(1, 2, 3));
console.log(array);

使用for循环实现所需效果的一种方法:
// create an array with 9 empty elements
let array = new Array();
// assign an array to each of them
for(let i = 0; i < 9; i++){
array.push(new Array(1, 2, 3));
}
console.log(array)
&#13;
为什么不能在.map
占位符的数组上使用empty
? Array(3)
- 语法的目的是什么?
答案 0 :(得分:3)
您可以使用new Array(n)
创建一个稀疏数组,一个带有间隙的数组,长度为n
。根据MDN关于Array#map的文章:
由于规范中定义的算法是否为数组 调用的地图是稀疏的,结果数组也将是稀疏的 保持相同的指数空白。
要解决这个问题,你可以使用Array#fill来为稀疏数组填充一个值(即使undefined
会这样做),然后你可以用你想要的任何颜色来映射它。
// create an array with 9 empty elements
const array = new Array(9);
// assign an array to each of the array's elements
const result = array
.fill()
.map(() => [1, 2, 3]);
console.log(result);
&#13;