应用场景
购物车的添加删除,某人员添加删除....
需要处理的数据
let arr1 =
[
{
"userGuid": "b31f3070-5628-4de8-859f-a39bf6d044d7",
"userName": "陈时雨",
"unitGuid": null,
"userNumber": "0071",
"cardNumber": "0071",
"departmentGuid": "7dafa3d8-f2b9-413a-9f5d-c56422d76bc7",
"departmentName": "天健一年级"
},
{
"userGuid": "d9df6276-3451-41e5-b083-57524e2cd74c",
"userName": "test001",
"unitGuid": null,
"userNumber": "001",
"cardNumber": "001",
"departmentGuid": "7dafa3d8-f2b9-413a-9f5d-c56422d76bc7",
"departmentName": "天健一年级"
},
{
"userGuid": "da830a86-b97f-4c33-8fdc-432a9ede9e67",
"userName": "何朝彬",
"unitGuid": null,
"userNumber": "1076424594",
"cardNumber": "1076424594",
"departmentGuid": "2e0b0f33-c684-4d4d-9fbb-adcbf70fae26",
"departmentName": "一年级一班"
},
]
let arr2 = [
{
"userGuid": "b31f3070-5628-4de8-859f-a39bf6d044d7",
"userName": "陈时雨",
"unitGuid": null,
"userNumber": "0071",
"cardNumber": "0071",
"departmentGuid": "7dafa3d8-f2b9-413a-9f5d-c56422d76bc7",
"departmentName": "天健一年级"
}
]
json格式的数据进行去重合并
/**
* json数据数组去重并合并
* @param {数组1} arr1
* @param {数组2} arr2
* @param {共同的标识} key
*/
function getRemoval(arr1, arr2, key) {
let arr = [...arr1, ...arr2];
let obj = {};
let newarr = [];
for (const value of arr) {
// 利用对象的唯一性进行判断
if (!obj[value[key]]) {
// 不含有该对象就push到新数组
obj[value[key]] = true;
newarr.push(value);
}
}
return newarr;
}
返回的结果
[
{
"userGuid": "b31f3070-5628-4de8-859f-a39bf6d044d7",
"userName": "陈时雨",
"unitGuid": null,
"userNumber": "0071",
"cardNumber": "0071",
"departmentGuid": "7dafa3d8-f2b9-413a-9f5d-c56422d76bc7",
"departmentName": "天健一年级"
},
{
"userGuid": "d9df6276-3451-41e5-b083-57524e2cd74c",
"userName": "test001",
"unitGuid": null,
"userNumber": "001",
"cardNumber": "001",
"departmentGuid": "7dafa3d8-f2b9-413a-9f5d-c56422d76bc7",
"departmentName": "天健一年级"
},
{
"userGuid": "da830a86-b97f-4c33-8fdc-432a9ede9e67",
"userName": "何朝彬",
"unitGuid": null,
"userNumber": "1076424594",
"cardNumber": "1076424594",
"departmentGuid": "2e0b0f33-c684-4d4d-9fbb-adcbf70fae26",
"departmentName": "一年级一班"
},
]
json格式的删除arr1 中 有arr2的数据
/**
* 删除json格式的arr1数组中arr2有的数据
* @param {数组1} arr1
* @param {数组2} arr2
* @param {共同的标识} key
*/
function getDelArr(arr1, arr2, key) {
const userGuid1 = arr2.map(v => v[key]);
const newArr1sp = arr1.filter(item => !userGuid1.includes(item[key]));
const userGuid2 = arr1.map(v => v[key]);
const newArr2sp = arr2.filter(item => !userGuid2.includes(item[key]));
const newArr = [...newArr1sp, ...newArr2sp]
return newArr;
}
返回的结果
[
{
"userGuid": "d9df6276-3451-41e5-b083-57524e2cd74c",
"userName": "test001",
"unitGuid": null,
"userNumber": "001",
"cardNumber": "001",
"departmentGuid": "7dafa3d8-f2b9-413a-9f5d-c56422d76bc7",
"departmentName": "天健一年级"
},
{
"userGuid": "da830a86-b97f-4c33-8fdc-432a9ede9e67",
"userName": "何朝彬",
"unitGuid": null,
"userNumber": "1076424594",
"cardNumber": "1076424594",
"departmentGuid": "2e0b0f33-c684-4d4d-9fbb-adcbf70fae26",
"departmentName": "一年级一班"
},
]