我有两个类似的对象数组,
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
})
所以,我要得到的最终对象将是
const result = [{
{id: "1", isavaliable: false},
{id: "2", isavaliable: true},
{id: "3", isavaliable: true},
}
]
那么,我该如何实现呢? 谢谢。
答案 0 :(得分:1)
首先创建B
id的数组或Set,然后可以.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
可以正常工作。
答案 1 :(得分:1)
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));
答案 2 :(得分:1)
使用lodash'查找'检查数组B中的ID
import json
data = json.load(open("data.json"))
def translate(w):
return data[w]
word = input("Enter word: ")
print(translate(word))