展平和区分对象中的多个数组

我有以下对象:


'1': {

   id: 1,

   ...

   tags: ['cat I', 'cat II']

 },

'2': {

   id: 2,

   tags: ['cat II', 'cat III']

 }

要获得所有类别(但没有重复),我执行以下操作:


  const cats = [];

  this.courses.forEach(data => (data.tags) ? cats.push(data.tags) : '');

  return [...new Set(cats.flat())];

它有效,但我觉得这是“超越顶部”的方式。它也运行了两次,因为它在计算属性中。


有没有更好的方法来区分和过滤类别。也许通过向商店查询?


慕村9548890
浏览 147回答 2
2回答

慕容森

我有以下对象:'1': {   id: 1,   ...   tags: ['cat I', 'cat II'] },'2': {   id: 2,   tags: ['cat II', 'cat III'] }要获得所有类别(但没有重复),我执行以下操作:  const cats = [];  this.courses.forEach(data => (data.tags) ? cats.push(data.tags) : '');  return [...new Set(cats.flat())];它有效,但我觉得这是“超越顶部”的方式。它也运行了两次,因为它在计算属性中。有没有更好的方法来区分和过滤类别。也许通过向商店查询?

四季花海

你做:const courses = [{id: 1, tags: ['cat I', 'cat II ']}, {id: 2, tags: ['cat II', 'cat III']}, {id: 3}]const tags = courses&nbsp; .reduce((a, { tags = [] }) => [...a, ...tags], [])&nbsp; .map(tag => tag.trim()) // <-- to remove extra spaces in "cat II "&nbsp;&nbsp;const result = [...new Set(tags)]console.log(result)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript