[英]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.