vue.js 在对象内提取对象

fcg9iug3  于 2023-02-05  发布在  Vue.js
关注(0)|答案(2)|浏览(197)

我正在尝试获取技能中的名称。

为此,我使用过滤器进行初始级别排序。这意味着我可以对行进行排序,但如何获取名称?

let r = this.topics.filter(a => {
          console.log('a is : ', a)
          return a.Skills.name
          
        })
nafvub8i

nafvub8i1#

我想您误解了Array.filter的功能,它从数组中过滤/删除与用户传递给它的条件不匹配的项,有关详细信息,请单击filter docs
在本例中,您使用Array.map转换数据,更多信息请参见map docs

let r = this.topics.map(item => {
      return item.skills.map( skill => skill.name)
 })

上面的代码将返回类似[['Writing', 'Reading'], ['Testing', 'Debugging']]的内容

cwtwac6a

cwtwac6a2#

您可以使用Map和排序函数来实现这一点。

const topics = [{
  Skills: [{
    name: "Java",
    id: 1
  },
  {
    name: "C++",
    id: 2
  },
  {
    name: "Python",
    id: 3
  }
]
}]

let r = topics.map((a) => {
  return a.Skills.sort((a, b) => {
    return a.name.localeCompare(b.name);
  });
});

console.log(r);

相关问题