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

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

從一個對象中刪除與其他對象項匹配的項

從一個對象中刪除與其他對象項匹配的項

MMMHUHU 2022-10-08 17:53:21
我有一個對象結構如下"designProjects": [  {    "projectNumber": "number1",    "name": "test1"  },  {    "projectNumber": "number2",    "name": "test2"  },  {    "projectNumber": "number3",    "name": "test3"  },]我有另一個具有如下結構的對象"allProjects": [  {    "project": {      "name": "test1",      "number": "number1"    },    "employee": {      "displayName": "name1"    },    "projectRoleName": "Editor"  },  {    "project": {      "name": "test2",      "number": "number2"    },    "employee": {      "displayName": "name2"    },    "projectRoleName": "Editor"  },]我有點像下面這樣的結果"designProjects": [  {    "projectNumber": "number3",    "name": "test3"  },]這里的結果 designProjects只有一個,因為項目編號和名稱與對象project數組匹配allprojects。有沒有辦法我們可以在react js. 任何建議或想法都會非常感謝我,非常感謝提前
查看完整描述

2 回答

?
回首憶惘然

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

您只需與 結合.filter使用.some,例如:


let d = {

  "designProjects": [

    {

      "projectNumber": "number1",

      "name": "test1"

    },

    {

      "projectNumber": "number2",

      "name": "test2"

    },

    {

      "projectNumber": "number3",

      "name": "test3"

    },

  ]

}


let a = {

  "allProjects": [

    {

      "project": {

        "name": "test1",

        "number": "number1"

      },

      "employee": {

        "displayName": "name1"

      },

      "projectRoleName": "Editor"

    },

    {

      "project": {

        "name": "test2",

        "number": "number2"

      },

      "employee": {

        "displayName": "name2"

      },

      "projectRoleName": "Editor"

    },

  ]

};


console.log(

    d.designProjects.filter((designProject) => {

        return !a.allProjects.some((project) => designProject.projectNumber === project.project.number && designProject.name === project.project.name);

     })

 );


查看完整回答
反對 回復 2022-10-08
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

您可以結合過濾器一些

filter用于根據條件返回一個新的過濾數組

some將成為條件并在找到匹配項后立即返回

const designProjects = [{

    "projectNumber": "number1",

    "name": "test1"

  },

  {

    "projectNumber": "number2",

    "name": "test2"

  },

  {

    "projectNumber": "number3",

    "name": "test3"

  },

];


const allProjects = [{

    "project": {

      "name": "test1",

      "number": "number1"

    },

    "employee": {

      "displayName": "name1"

    },

    "projectRoleName": "Editor"

  },

  {

    "project": {

      "name": "test2",

      "number": "number2"

    },

    "employee": {

      "displayName": "name2"

    },

    "projectRoleName": "Editor"

  },

]


const cleaned = designProjects.filter((x) => {

  return !allProjects.some(y => y.project.number === x.projectNumber);

});


console.info(cleaned);


查看完整回答
反對 回復 2022-10-08
  • 2 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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