【问题标题】:Displaying Objects in an Array VueJS在数组 VueJS 中显示对象
【发布时间】:2019-03-31 05:05:47
【问题描述】:

所以我使用了一个看起来像这样的JSON 对象:

data: [
  {
    title: "Post Title One",
    categories: {
      data: [
        {
          id: 1,
          name: "Category Name 1"
        }
      ]
    }
  },
  {
    title: "Post Title Two",
    categories: {
      data: [
        {
          id: 2,
          name: "Category Name 1"
        },
        {
          id: 3,
          name: "Category Name 2"
        }
      ]
    }
  }
]

我想获取每个帖子的所有类别并使用 Vue 显示它们。所以我目前拥有的是:

<div v-for="post in posts">
   <div>{{ post.categories.data }}</div>
</div>

在那个{{ post.categories.data }} 中,我试图显示JSON 对象的类别名称。当我使用上面的内容时,整个数组会显示在 div 中。当我尝试做类似的事情时

{{ post.categories.data.name }} 

{{ post.categories.data[0].name }}

我不显示类别的名称。我真的很想显示帖子的每个类别的名称,但似乎无法正确显示。

编辑:还有帖子是我在VueJS 中使用的数据属性,并将JSON 对象设置为该属性。

【问题讨论】:

  • 你试过“post.categories.data.map(d => d.name).join()”吗?这将一起显示所有类别名称

标签: javascript vue.js vuejs2


【解决方案1】:

您应该将map 方法与解构结合使用。

<div v-for="post in posts">
    <div>{{ post.categories.data.map(({name}) => name).join(' ') }}</div>
</div>

【讨论】:

  • 成功了,谢谢!我将更多地研究 map 方法