整理一些开发中经常使用的功能,慢慢补充,记录在utils.js,遇到的就记录一下。
一、数组去重
通过filter去重 - 对象数组去重
export function removeDuplicateObjList(arr, key='id') {
const res = new Map();
return arr.filter((arr) => !res.has(arr[key]) && res.set(arr[key], 1));
}
let arr = [{label: 'a', id: 1}, {label: 'b', id: 2}, {label: 'c', id: 3}, {label: 'a', id: 1}]
console.log(removeDuplicateObjList(arr))
// 输出:
//[{label: 'a', id: 1},{label: 'b', id: 2},{label: 'c', id: 3}]
set 将对象或者数组去重, Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组,也是ES6的新增方法。
export function removeDuplicateList(arr) {
// 两种方法都可以
return Array.from(new Set(arr))
// let newArr = new Set(arr)
// return [... newArr]
}
let arr = [1,2,3,1,2]
console.log(new Set(arr))
// 输出:
// [1, 2, 3]
网友评论