找两个数组的交集
var arr1 = [3, 2, 1];
var arr2 = [
{ name: 'name1', id: 1 },
{ name: 'name2', id: 2 },
{ name: 'name3', id: 3 },
{ name: 'name4', id: 4 },
{ name: 'name5', id: 5 },
];
var result = arr2.filter(function (v) {
return arr1.indexOf(v.id) != -1; // 利用filter方法来遍历是否有相同的元素 可以根据等于-1 或者不等于-1 来获取相同或者不同的元素
});
console.log(result);
一个数组根据领一个数组排序
var list = [
{ name: 'name1', id: 1 },
{ name: 'name2', id: 2 },
{ name: 'name3', id: 3 },
{ name: 'name4', id: 4 },
];
list.sort((a, b) => {
let order = [3, 2, 4, 1];
return order.indexOf(a.id) - order.indexOf(b.id);
});
console.log(list);
数组去重
//去重
reduceRepeat(arr) {
let outRightlist = [];
let innerRightlist = {};
arr.forEach((item, index) => {
if (!innerRightlist[item.id]) {
outRightlist.push(item);
innerRightlist[item.id] = true;
}
});
return outRightlist;
},
数组对象里的某个键值对的value在数组里不能重复
isRepeat(arr, key) {
//有重复返回false 没有重复返回obj
var obj = {};
for (let i = 0; i < arr.length; i++) {
if (obj[arr[i][key]]) {
return false;
} else {
obj[arr[i][key]] = arr[i];
}
}
return obj;
},