gpt4 book ai didi

javascript - 新的 Array(9) 语法的目的是什么?

转载 作者:行者123 更新时间:2023-11-30 11:24:58 25 4
gpt4 key购买 nike

我不能在 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)

为什么 .map 不能用在带有 empty 占位符的数组上? Array(3) - 语法的目的是什么?

最佳答案

您可以使用new Array(n) 创建一个稀疏数组,一个有间隙的数组,长度为n。根据关于 Array#map 的 MDN 文章:

Due to the algorithm defined in the specification if the array which map was called upon is sparse, resulting array will also be sparse keeping same indices blank.

要解决这个问题,您可以使用 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);

关于javascript - 新的 Array(9) 语法的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com