首页 > 解决方案 > 如何比较两个数组并将其插入更新或创建数组

问题描述

我有两个名称为 changedemployeesarray 和 allemployees 的数组。

var changedemployeesarray = [
  {
    "empId": "1126",
    "name": "sam"
  },
  {
    "empId": "1128",
    "name": "mike"
  },
  {
    "empId": "1134",
    "name": "steve"
  }
]


var allemployees = [
  {
    "empFullName": "sam Raj",
    "empInfo": {
      "empSeq": "1126",
      "createDate": "2018-10-17"
    },
    "modfiedDate": "2018-10-24"
  },
  {
    "empFullName": "mike",
    "empInfo": {
      "empSeq": "1128",
      "createDate": "2018-10-17"
    },
    "modfiedDate": "2018-10-24"
  },
  {
    "empFullName": "steve",
    "empInfo": {
      "empSeq": "1134",
      "createDate": "2018-10-17"
    },
    "modfiedDate": "2018-10-24"
  }
]

如果 changedemployeesarray 的 empId 在 allemployees 数组中存在/找到,我想插入 updatearray 。如果找不到,则将其插入到 createarray 下

我遵循了这种方法,有没有更好的方法

https://jsfiddle.net/o2gxgz9r/74296/

预期产出

更新数组

[{"empId":"1126","name":"sam"},{"empId":"1128","name":"mike"}]

创建数组

[{"empId":"1136","name":"steve"}]

标签: jquery

解决方案


您可以使用过滤器来获取您的 2 数组。

var changedemployeesarray = [
  {
    "empId": "1126",
    "name": "sam"
  },
  {
    "empId": "1128",
    "name": "mike"
  },
  {
    "empId": "1136",
    "name": "steve"
  }
]


var allemployees = [
  {
    "empFullName": "sam Raj",
    "empInfo": {
      "empSeq": "1126",
      "createDate": "2018-10-17"
    },
    "modfiedDate": "2018-10-24"
  },
  {
    "empFullName": "mike",
    "empInfo": {
      "empSeq": "1128",
      "createDate": "2018-10-17"
    },
    "modfiedDate": "2018-10-24"
  },
  {
    "empFullName": "steve",
    "empInfo": {
      "empSeq": "1134",
      "createDate": "2018-10-17"
    },
    "modfiedDate": "2018-10-24"
  }
]
  var updatearray = [];
var createarray = [];

updatearray = changedemployeesarray.filter(a=> allemployees.some(b=> b.empInfo.empSeq === a.empId));
createarray = changedemployeesarray.filter(a=> !allemployees.some(b=> b.empInfo.empSeq === a.empId));

console.log("updatearray",updatearray)
console.log("createarray",createarray)


推荐阅读