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

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

基于另一個對象過濾對象屬性

基于另一個對象過濾對象屬性

茅侃侃 2022-12-22 12:01:20
我有兩個對象object_a和object_b。從object_a我只需要ID出現在object_bconst object_a = {    100: "Stack Overflow",    101: "MDN Web Docks",    102: "Javascript"}const object_b = {    0: {        id: 100,        name: "Stack",        lastname: "Overflow"    },    1: {        id: 101,        name: "Web",        lastname: "Docks"    }}   從這些我需要得到所有object a出現id在object bconst desired_object = {    100: "Stack Overflow",    101: "MDN Web Docks"}
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

您可以擴展Object.entries()of object_a,過濾掉(使用Array.prototype.filter())那些在of中看不到的( Array.prototype.some()):Object.values() idobject_b


const a = {100:"Stack Overflow",101:"MDN Web Docks",102:"Javascript"},

      b = {0:{id:100,name:'Stack',lastname:'Overflow',},1:{id:101,name:'Web',lastname:'Docks',}},

    

    result = Object.fromEntries(

      Object

        .entries(a)

        .filter(([key]) => 

          Object

            .values(b)

            .some(({id}) => id == key)

        )

     )

    

console.log(result)

另一種方法(我猜可能工作得更快)可以Array.prototype.reduce()用來遍歷并執行相同的檢查Object.keys():object_a


const a = {100:"Stack Overflow",101:"MDN Web Docks",102:"Javascript"},

      b = {0:{id:100,name:'Stack',lastname:'Overflow',},1:{id:101,name:'Web',lastname:'Docks',}},

      

      result = Object

        .keys(a)

        .reduce((acc, key) => {

          if(Object.values(b).some(({id}) => id == key))

            acc[key]=a[key]

          return acc

        }, {})

          

console.log(result)          


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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