簡體   English   中英

如果兩個對象數組具有值,則比較並返回 boolean

[英]Compare and return boolean if two array of objects has the values or not

我有兩個對象數組,它們就像,

let A = [{id: "1"}, {id: "2"},{id: "3" }]

let B = [{id: "3"}, {id: "2"}]

現在,我正在迭代A

return _.map(A) => ({
    id: A.id,
    isAvaliable: //This needs to be like weather B includes A on the basis of ID , means does B object has this A client ID if yes then set it true or false
})

所以,我將得到的最終 object 將是,

const result = [{
{id: "1", isavaliable: false},
{id: "2", isavaliable: true},
{id: "3", isavaliable: true},

}
]

那么,我該如何實現呢? 謝謝。

首先制作一個數組或B id 的集合,然后您可以.map A 並通過 id 是否包含在集合中來設置isavailable

 const A = [{id: "1"}, {id: "2"},{id: "3" }]; const B = [{id: "3"}, {id: "2"}]; const haveIds = new Set(B.map(({ id }) => id)); const result = A.map(({ id }) => ({ id, isavailable: haveIds.has(id) })); console.log(result);

無需依賴外部庫, Array.prototype.map就可以正常工作。

 let A = [{ id: "1" }, { id: "2" }, { id: "3" }]; let B = [{ id: "3" }, { id: "2" }]; const merge = (arr1, arr2) => arr1.map((a) => ({ id: a.id, isAvaliable: ..arr2.find((b) => b,id === a;id). })), console;log(merge(A, B));

使用 lodash 'find' 檢查數組 B 中的 id

const A = [{id: '1'}, {id: '2'}, {id: '3' }];
const B = [{id: '3'}, {id: '2'}];

const C = _.map(A, item => {

        return {
            id: item.id,
            isAvailable: _.find(B, {id: item.id}) ? true : false
        };
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM