let arr1 = [
{
id: 1,
name: "zs",
},
{
id: 2,
name: "ls",
},
];
let arr2 = [
{
id: 2,
name: "ls",
},
{
id: 4,
name: "ww",
},
{
id: 4,
name: "xz",
},
];
1.去重
1.1基本数据类型
[...new Set()]
1.2.复杂数据类型,根据某一个属性是否重复
// initial为初始值, 当前初始值为[], current是当前元素
var obj = {};
let result = arr2.reduce( (initial, current)=> {
obj[current.id] ? '' : obj[current.id] = true && initial.push(current);
return initial;
}, []);
2.交集
let newArray = arr1.filter(item => arr2.some(each => each.id == item.id))
3.差集
let newArray = arr1.filter(item => arr2.every(each => each.id !== item.id))
4.位置交换
let arr = [{ key: 1 }, { key: 2 },{ key: 3 },{ key: 4 }]
let index = arr.findIndex(item => item.key == 2)
let value = arr.find(item => item.key == 2)
//上移动
arr.splice(index, 1) //先删除
arr.splice(index - 1, 0, value) //后添加
//下移动
arr.splice(index, 1) //先删除
arr.splice(index + 1, 0, value) //后添加