企业官网建站系统,图文广告设计制作软件,大学网页制作选择题在哪搜,wordpress防抓取数组去重或者其衍生作为笔试题或者机试题出现的几率也是很大的#xff0c;写出的方法越多#xff0c;则让面试官觉得你思维越开阔#xff0c;那么成功的几率当然就大了。 废话不多说#xff0c;下面来说说下面我整理的4中数组去重的方法 方法一#xff1a; findInArr方法s…数组去重或者其衍生作为笔试题或者机试题出现的几率也是很大的写出的方法越多则让面试官觉得你思维越开阔那么成功的几率当然就大了。 废话不多说下面来说说下面我整理的4中数组去重的方法 方法一 findInArr方法select方法组合 findInArr 查找一个数在当前数组中是否存在存在返回true找完所有没有找到返回false这个数就是我们要操作的那个数组 select 循环数组并调用findInArr方法 查找当前arr[i]在arr2中是否存在如果返回false 那么就把当前这个数 arr[i] push到新的数组 arr2中最后return arr2 1 function findInArr(n ,arr){2 for (var i 0; i arr.length; i) {3 if (n arr[i]) {4 return true;5 }6 }7 return false;8 }9 function select (arr){
10 var arr2 [];
11 for(var i 0; i arr.length; i){
12 if (!findInArr(arr[i],arr2)) {
13 arr2.push(arr[i]);
14 }
15 }
16 return arr2;
17 } View Code 方法二 利用json特性 创建一个空的json通过对key的检索--- !json[arr[i]],取反说明不存在 这样我们可以对其进行赋值json[arr[i]] true; 对于 赋什么值随意保证它的键值对就行 并且把当前这个数push 或者其他方式都行 总是添加到新数组 arr2中最后return arr2 1 function select (arr){2 var json {};3 var arr2 [];4 for (var i 0; i arr.length; i) {5 if (!json[arr[i]]) {6 json[arr[i]] true;7 arr2.push(arr[i])8 }9 }
10 return arr2;
11 } View Code 方法三 相邻数比较法这个方法前提是先用sort 进行简单排序不需要改进版的 经过sort排序之后我们不论它排序是否正确但是有一点我们能确定那就是相同的一定被排到了一起 那么我们对排序之后的数组遍历并且让当前的数和下一个数进行比较如果相等那么用splice(i,1) 方法对其进行删除这时候i的值需要 i--避免它少比一次最后return arr; 1 function select(arr){2 arr.sort();3 for (var i 0; i arr.length; i) {4 if (arr[i] arr[i1]) {5 arr.splice(i,1)6 i--;7 }8 }9 return arr;
10 } View Code 方法四使用数组的indexOf方法 IE8--不兼容 通过判断arr2.indexOf(arr[i]) -1 来确定新数组arr2中没有arr[i]并将其添加到数组arr2中最终返回 arr2 1 function select (arr){
2 var arr2 [];
3 for( var i 0; i arr.length; i){
4 if (arr2.indexOf(arr[i]) -1) {
5 arr2.push(arr[i])
6 }
7 }
8 return arr2;
9 } View Code 上述四中方法肯定存在的性能的差异可以从速度上所占内存等进行比较我没有测过所以就不妄加定论。希望测过的朋友能告知 。谢谢转载于:https://www.cnblogs.com/NTWang/p/6246621.html