🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 咕笛老师:此题看着简单,但要想面试官给你高分还是有难度的。至少也要写出几种方法 js ~~~text var arr=['12','32','89','12','12','78','12','32']; // 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ //遍历当前数组 if (n.indexOf(array[i]) == -1) n.push(array[i]); } return n; } arr=unique1(arr); // 速度最快, 占空间最多(空间换时间) function unique2(array){ var n = {}, r = [], type; for (var i = 0; i < array.length; i++) { type = typeof array[i]; if (!n[array[i]]) { n[array[i]] = [type]; r.push(array[i]); } else if (n[array[i]].indexOf(type) < 0) { n[array[i]].push(type); r.push(array[i]); } } return r; } //数组下标判断法 function unique3(array){ var n = [array[0]]; //结果数组 for(var i = 1; i < array.length; i++) { //从第二项开始遍历 if (array.indexOf(array[i]) == i) n.push(array[i]); } return n; } ~~~ es6 ~~~text es6方法数组去重 arr = [...new Set(arr)]; es6方法数组去重,第二种方法 arr = Array.from(new Set(arr)); //Array.from()能把set结构转换为数组 ~~~