【问题标题】:Why do I get undefined values in my array? [duplicate]为什么我的数组中有未定义的值? [复制]
【发布时间】:2012-11-09 13:49:31
【问题描述】:

为什么是值

(new Array(2)).map(function (x, i, a) { return i })

[undefined, undefined] 而不是 [0, 1]?

【问题讨论】:

  • 因为map 不访问空索引(“稀疏数组”)
  • @Bergi 嗯,让它成为一个答案。大声笑
  • 您可以使用Array(2).join("|").split("|").map(function (x, i, a) { return i }) 或任何不检查索引是否实际存在的地图实现,例如jQuery.map
  • @epascarello:会做的,我只是在 JS 列表理解上搜索相关/重复的问题。
  • Esailija:很有趣,但对我来说太过分了。

标签: javascript


【解决方案1】:

new Array(2) 生成一个稀疏数组 - 没有值,但长度为 2。它等价于 [,,]

现在,Array's .map() method 被指定为省略未初始化/已删除的索引,因此您只需返回另一个空数组。

你想做什么的相关问题:How to write List/Array comprehensions in JavaScript

【讨论】:

    【解决方案2】:

    当你指定一个 javascript 数组的大小时,它会用未定义的值填充它

    【讨论】:

    • 不,关键是没有填充值。
    • 它会返回 undefined,这就是我想说的
    猜你喜欢
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多