亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

展平和區分對象中的多個數組

展平和區分對象中的多個數組

慕村9548890 2021-12-02 19:55:26
我有以下對象:'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())];它有效,但我覺得這是“超越頂部”的方式。它也運行了兩次,因為它在計算屬性中。有沒有更好的方法來區分和過濾類別。也許通過向商店查詢?
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

我有以下對象:


'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())];

它有效,但我覺得這是“超越頂部”的方式。它也運行了兩次,因為它在計算屬性中。


有沒有更好的方法來區分和過濾類別。也許通過向商店查詢?


查看完整回答
反對 回復 2021-12-02
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

你做:


const courses = [{id: 1, tags: ['cat I', 'cat II ']}, {id: 2, tags: ['cat II', 'cat III']}, {id: 3}]


const tags = courses

  .reduce((a, { tags = [] }) => [...a, ...tags], [])

  .map(tag => tag.trim()) // <-- to remove extra spaces in "cat II "

  

const result = [...new Set(tags)]


console.log(result)


查看完整回答
反對 回復 2021-12-02
  • 2 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號