1、对象数组的排序
sortNum方法为排序方法,参数property为需要排序的字段名
arr: [
{ num: 23, name: '铅笔' },
{ num: 5, name: '橡皮' },
{ num: 33, name: '钢笔' },
{ num: 1, name: '彩笔' }
]
function sortNum(property) {
//排序方法
return (a, b) => {
const value1 = a[property];
const value2 = b[property];
return value1 - value2;
};
}
// 使用方式
arr.sort(sortNum('num'))
2、对象数组的去重
(1)方法一
方法中参数arr为需要去重的数组,property为以哪项参数去重
function duplicateRemoval(arr, property) {
for(var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i][property] == arr[j][property]) {
//如果第一个等于第二个,splice方法删除第二个
arr.splice(j, 1);
j--;
}
}
}
}
// 使用
duplicateRemoval(arr)
(2)方法二
方法中参数arr为需要去重的数组,property为以哪项参数去重
function duplicateRemoval(arr, property) {
const newArr = new Map();
const v = arr.filter(item => !newArr.has(item[property]) && newArr.set(item[property], 1));
return newArr;
}