数组去重应该是面试必答题了吧,那么数组去重有哪些方法呢?哪种方法的性能比较高呢?
我写了一个测试模板来验证,分别创建了两个长度为 10W 和 5W 的数组,然后通过 distinct() 方法合并两个数组,并去掉其中的重复项
方法一:Array.filter() + indexOf
使用 ES6 的Array.filter() 遍历数组,并结合 indexOf 来排除重复项
mounted() {
this.distinct_test('方法一:Array.filter() + indexOf');
},
methods:{
distinct_test(desc){
let arr1 = Array.from(new Array(100000), (x, index)=>{
return index
})
let arr2 = Array.from(new Array(50000), (x, index)=>{
return index+index
})
console.log(desc)
let start = new Date().getTime()
console.log('开始数组去重')
function distinct(a, b) {
// 数组去重
let arr = a.concat(b);
return arr.filter((item, index)=> { return arr.indexOf(item) === index })
}
console.log('去重后的长度', distinct(arr1, ar