JS 求出数组对象差异

101 阅读1分钟

初学者,最容易理解的一种,求出数组对象差异数据的方法。

方法一:map、filter、includes

const arr1 = [
  {id: 1, name: '张三', age: 35},
  {id: 2, name: '简逸', age: 18},
  {id: 3, name: '章丘', age: 14},
  {id: 4, name: '胡四', age: 10},
]

const arr2 = [
  {id: 2, name: '简逸', age: 18},
  {id: 3, name: '章丘', age: 14},
]
let nameList = arr2.map((item) => item.name);
const diff = arr1.filter((item) => !nameList.includes(item.name));
// diff [{id: 1, name: '张三', age: 35},{id: 4, name: '胡四', age: 10},]

方法二: Lodash pullAllBy

const arr1 = [
  {id: 1, name: '张三', age: 35},
  {id: 2, name: '简逸', age: 18},
  {id: 3, name: '章丘', age: 14},
  {id: 4, name: '胡四', age: 10},
]

const arr2 = [
  {id: 2, name: '简逸', age: 18},
  {id: 3, name: '章丘', age: 14},
]
const diff = _.pullAllBy(data, arr2, 'id');
// diff [{id: 1, name: '张三', age: 35},{id: 4, name: '胡四', age: 10},]