如果尚未提供Typescript,则添加到数组

时间:2018-05-16 11:55:14

标签: arrays typescript

我有两个数组:

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);
}

1 个答案:

答案 0 :(得分:1)

问题是在JS中检查对象相等性没有直接的方法,当然:

{a: 1} === {a: 1} //false

可能的解决方案是使用lodash

Users2Add.forEach(user => {
  if (!Users.some(existingUser = > _.isEqual(existingUser, user))) {
    Users.push(user);
  }
});