【问题标题】:Assigning Array Value Gives Undefined Key分配数组值给出未定义的键
【发布时间】:2018-10-17 16:22:21
【问题描述】:

我有一个包含 100 辆卡车的多维数组。每辆卡车都有几个箱子。 我通过从盒子数组拼接到卡车数组来插入每辆卡车的第一个盒子:

removed = allBoxes.splice(x, 1)[0];
trucks[i] = {0: removed};

因为我知道这是第一个盒子,所以我可以放{0:。但是要添加下一个框,我希望它是动态的。 我可以将它插入到正确的位置,但是下一个框的键是undefined 而不是1

removed = allBoxes.splice(x, 1)[0];
trucks[i][trucks[i].length] = removed;

你可以在这里看到结果:不是undefined:,而是1吗?每当我尝试在数组中添加变量时,它只会写出变量字符串,而不是值。

【问题讨论】:

  • 听起来你想用.map()
  • trucks[i] 被定义为一个对象而不是一个数组,因此它没有“长度”属性。
  • 如果数组一开始是空的,只需使用allBoxes.push(obj),它会将obj添加到数组中。

标签: javascript arrays multidimensional-array


【解决方案1】:

正如@JordanBurnett 提到的,它不是一个数组。我必须计算数组中有多少对象。使用下面的代码(来自this question)给出了预期的结果:

var size = Object.keys(trucks[i]).length;
trucks[i][size] = removed;

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 2017-07-05
    • 2019-05-08
    相关资源
    最近更新 更多