【发布时间】:2018-10-23 20:40:48
【问题描述】:
考虑以下 JavaScript 代码(在节点 REPL 中):
> let a = new Array(10)
undefined
> a
[ <10 empty items> ]
> a.map(e => 1)
[ <10 empty items> ]
> let b = new Array(10).fill(undefined)
undefined
> b
[ undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined ]
> b.map(e => 1)
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
>
当我创建一个空数组时,我会得到看起来与undefined 不同的“空项目”。谁能解释一下有什么区别?
【问题讨论】:
-
在第一种情况下可能只设置了长度。
-
空槽不会在您的 Array 对象上设置“索引键”,因此某些方法不会去那里。
-
@Mihai 您的编辑不反映原始问题的标题或正文。
标签: javascript arrays undefined