javascript - 访问对象数组中的项目

标签 javascript arrays javascript-objects

我有一个相当简单的 JSON 文件,我试图访问其中的项目。我有这个工作但由于某种原因它不再工作并且它让我的大脑受伤。这是 JSON:

[
  {
    "firstItem":
      {
        "message": "firstItem is working",
        "value": ["hello", "world"]
      }
  },
  {
    "secondItem":
      {
        "message": "secondItem is working",
        "value": ["hello", "aliens"]
      }
  }
]

请注意,有一个包含两个对象(firstItem 和 secondItem)的数组,其中包含对象(消息和值)。我正在尝试像这样访问这些项目:

// the json from above is equal to json

json.map(items => {
  console.log(items.firstItem.message)
  console.log(items.firstItem.value.join(", "))
  console.log(items.secondItem.message)
  console.log(items.secondItem.value.join(", "))
})

一如既往,我们将不胜感激。

编辑:我将右括号放在联接上。这不是我的问题的一部分。我想我太习惯 VSCode 为我做这件事了。 :)

最佳答案

您在 console.log join 语句中缺少右括号。第二个也是更大的问题是,对于 map,您首先循环遍历 firstItem,然后是 secondItem,因此在第一次迭代中 map 不知道 secondItem 是什么。我将每个对象的名称更改为 "item" 并将 map 中的代码减半以解决问题:

const json = [
  {
    "item":
      {
        "message": "firstItem is working",
        "value": ["hello", "world"]
      }
  },
  {
    "item":
      {
        "message": "secondItem is working",
        "value": ["hello", "aliens"]
      }
  }
]

json.map(items => {
  console.log(items.item.message);
  console.log(items.item.value.join(", "));
})

关于javascript - 访问对象数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58921586/

相关文章:

javascript - 如何使用两个数组中的键创建 JS 对象?

javascript - JavaScript 范围

javascript - 如何在JavaScript中添加需要递归计算的新属性

javascript - 使用多个关键字并允许多个结果使用 jQuery 过滤列表

javascript - 如何用鼠标在 Canvas 上绘制箭头

javascript - Vuetify - 如何自定义 <v-select> 中的选项样式?

javascript - 全局对象中 __proto__ 和 [[prototype]] 之间的区别?

用于隐藏 Sharepoint 文档列表中按钮的 JavaScript

javascript - JavaScript tic tac toe 游戏中的错误

c++ - 为什么 ISO C++ 禁止返回数组?