首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >新Array(9)语法的目的是什么?

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

Stack Overflow用户
提问于 2018-01-20 23:41:07
回答 1查看 64关注 0票数 1

我不能对由具有设置长度的数组构造函数创建的数组使用.map

代码语言:javascript
运行
复制
// 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循环实现预期效果的一种方法:

代码语言:javascript
运行
复制
// 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占位符的数组上使用emptyArray(3)语法的目的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-20 23:56:13

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

由于规范中定义的算法--如果调用映射的数组是稀疏的--结果数组也将是稀疏的,使相同的索引保持空白。

要解决这个问题,您可以使用Array#fill,用一个值填充稀疏数组(甚至undefined也会这样做),然后您可以任意映射它。

代码语言:javascript
运行
复制
// 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);

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48362242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档