// 方法6,耗时约16ms,所有方法中 性能最高! (千万级数据量下效率比方法5高4倍,for...of 为ES6语法) let result = [] let obj = {} for (let i of arr) { if (!obj[i]) { result.push(i) obj[i] = 1 } } return result
}
console.log('去重后的长度', distinct(arr1, arr2).length) let end = newDate().getTime() console.log('耗时', end - start + 'ms')
结论
ES5标准中性能最高的数组去重方法为:
1 2 3 4 5 6 7
// 耗时约23ms arr = arr.sort() let result = [arr[0]] for (let i = 1, len = arr.length; i < len; i++) { arr[i] !== arr[i - 1] && result.push(arr[i]) } return result
ES6标准中性能最高的数组去重方法为:
1 2 3 4 5 6 7 8 9 10
// 耗时约16ms (千万级数据量下效率比使用Set数据结构方法高4倍,for...of 为ES6语法) let result = [] let obj = {} for (let i of arr) { if (!obj[i]) { result.push(i) obj[i] = 1 } } return result