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

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

根據另一個數組中的值過濾數組

根據另一個數組中的值過濾數組

斯蒂芬大帝 2021-08-26 16:19:36
我有一個由對象組成的數組。每個對象都有名稱和一個 items 數組。我想根據 id 過濾。const list = [ {name: "Bob",  items: [   {id: 1, color:"blue"},{id: 2, color:"green"}  ] }, {name: "Kate",  items: [   {id: 3, color:"yellow"},{id: 4, color:"pink"}  ] },  {name: "Fred",  items: [   {id: 5, color:"purple"}  ] }]如果 id===1,我希望它返回該數組的名稱和項目。類似的東西list.filter(listItems => listItems.items.filter(item => item.id === 1))應該返回name: "Bob",  items: [   {id: 1, color:"blue"},{id: 2, color:"green"}  ]
查看完整描述

3 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

如果我理解你的問題,你可以創建一個函數,用于Array.prototype.find返回回調函數返回的數組中的第一個元素true- 在這種情況下,回調可以包含一個 for 循環,當它能夠匹配id你時返回 true可以作為函數的另一個參數傳入。例如:


const list = [{

    name: "Bob",

    items: [{

      id: 1,

      color: "blue"

    }, {

      id: 2,

      color: "green"

    }]

  },

  {

    name: "Kate",

    items: [{

      id: 3,

      color: "yellow"

    }, {

      id: 4,

      color: "pink"

    }]

  },

  {

    name: "Fred",

    items: [{

      id: 5,

      color: "purple"

    }]

  }

];


const filterList = (arr, id) => {

  return arr.find(el => {

    for (let i = 0; i < el.items.length; i += 1) {

      if (el.items[i].id === id) {

        return true;

      }

    }

  })

};


console.log(filterList(list, 3))


查看完整回答
反對 回復 2021-08-26
  • 3 回答
  • 0 關注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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