初学者,最容易理解的一种,求出数组对象差异数据的方法。
方法一: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},]