【问题标题】:Can not access nested array in object无法访问对象中的嵌套数组
【发布时间】:2016-10-27 14:02:32
【问题描述】:

我有一个对象是索引号的集合。每个数字下都有两个属性和一个数组。我正在尝试编写一个函数,该函数将接受索引号、要更新的属性和值的参数。到目前为止,我无法弄清楚如何访问该数组。

var myObject = 
{
"0001":
  {
  "prop1": ""
  "prop2": ""
  "prop3": []
  }

要访问 prop1 和 prop2,我可以使用 if 语句:

if (prop == "prop1 ")
{
  collection[id].prop1 = value;
}
else if(prop == "prop2")
{
  collection[id].prop2 = value;
}

当我试图到达阵列时,它分崩离析。我尝试了几件事,最合乎逻辑的似乎是:

 if(prop == "prop3")
 {
   collection[id].prop3.push(value);
 }

我哪里错了?

【问题讨论】:

  • When I tried to get to the array it fell apart. 你在控制台遇到了什么错误?

标签: javascript arrays javascript-objects nested-properties


【解决方案1】:

也许你需要先创建一个数组。

if (prop == "tracks") {
    collection[id].tracks = collection[id].tracks || [];
    collection[id].tracks.push(value);
}

【讨论】:

  • 数组已经存在。它被初始化为一个空数组。
  • 没有错误,只是没有更新。似乎它不符合 if 语句的条件,只是继续前进。
  • 您可以插入console.log(...) 并查看控制台。
  • 尝试这样做。我在 freecodecamp 的环境中,所以除非它抛出错误,否则我无法访问控制台。由于我工作的安全性,我也无法访问浏览器的控制台。我回家后一定要试试。
  • 你可以用 alert 代替。
猜你喜欢
  • 2020-06-12
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多