我有两个数组:
Users [
{ "id": 0, "name": "Scott" },
{ "id": 0, "name": "Jan" },
{ "id": 0, "name": "Jack" },
]
Users2Add [
{ "id": 0, "name": "Scott" },
{ "id": 0, "name": "Andy" },
{ "id": 0, "name": "John" },
]
我想检查Users2Add中的新用户是否已在Users数组中。如果是,请不要推送(添加到阵列),否则将新用户(从User2Add)添加到Users阵列。像:
forEach(var u in Users2Add ) {
if(!(Users.containts(x => x.id == User2Add.idx))) Users.push(u);
}
答案 0 :(得分:1)
问题是在JS中检查对象相等性没有直接的方法,当然:
{a: 1} === {a: 1} //false
可能的解决方案是使用lodash:
Users2Add.forEach(user => {
if (!Users.some(existingUser = > _.isEqual(existingUser, user))) {
Users.push(user);
}
});