高级前端js【Q169】Array(100).map(x => 1) 结果是多少

Array(100).map(x => 1) 结果是多少

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 170

Author 回答者: shfshanyue

Array(100) 将会创建一个稀疏数组 (sparse array),即不存在真实元素,节省内存空间。在控制台上显示为 [empty]

// [empty × 100]
Array(100);

正因为没有元素,所以它也不会有 map 操作,所以 Array(100).map(x => 1) 仍然返回为 [empty]

那如何生成100个元素为1的数组呢?

可以使用 Array.from

Array.from(Array(100), (x) => 1);

而在 ES5 中借用 apply

Array.apply(null, Array(100)).map((x) => 1);

根据楼下提示,再添加一个 fill

Array(100).fill(1);

Author 回答者: Chersquwn

那如何生成100个元素为1的数组呢?

Array(100).fill(1);