最近在面试的过程中,碰到了如何在 JavaScript 中实现数组去重的功能,当时面试官说不用考虑性能什么的,所以我想到的思路是这样的:
- 新建一个数组;
- 每次遇到一个字符,进行判定;
- 如果在新的数组中没有这个字符,就插入到这个新数组中;
- 如果有这个字符,开始读取下一个字符;
- 重复步骤 2 - 4,直到数组遍历完了,最后返回这个新数组。
回来之后,查了查 JavaScript 中几种常见数组去重的方法,这里做个总结,然后并附上我对这几种方法性能的测试结果。
下面的函数是用来创建随机数数组的函数(1-1000):
function createArr(length) {
var arr = new Array();
for(var i = 0; i < length; i++) {
arr[i] = Math.floor(Math.random() * 1000) + 1;
}
return arr;
}
1、for循环(两次嵌套)+ 新数组
//chrome: max: 1443, min: 1181, average: 1207.47
//firefox: max: 238, min: 178, average: 185.7
function sort1(arr) {
var flag = 0;
var result = new Array();
for(var i =