欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 前端技术 > html >内容正文

html

前端面试高频题:删除数组重复元素的多种方法 -凯发k8官方网

发布时间:2025/1/21 html 24 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 前端面试高频题:删除数组重复元素的多种方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近在想着换工作,去了一家中关村的上市公司,面试官随便问了几个问题其中就提到了怎么删除数组元素的方法,表示这已经是第三次遇到了这个问题了,由于知识口头说说所以就随便说了下,之前用的时候都是直接找的方法库虽然知道大致是怎么写的但是还没有真正写过,网上的方法还是蛮多的这里也给大家分享一个作者写的吧,希望对初学者有所帮助:

//数组去重的方法 array.prototype.unique=function(){//集中声明变量var oldarr=this,newarr=[oldarr[0]],len=oldarr.length,i=1;//过滤空数组if(!len) return this;//过滤重复元素for(;i){newarr.indexof(oldarr[i])<0 ? newarr.push(_this) : ''; }//返回过滤后的数组没有影响原数组return newarr; } var arr=['a','a','b','a','c','d']; console.log(arr.unique());//["a", "b", "c", "d", unique: function]

 

 

虽然网上也有很多而且自己写的也不咋地,但是毕竟自己写的逻辑清楚以后还可以顺着逻辑扩展比如扩展到对象元素去重或者是可以同时操作多个数组等等这里再放上别人的写的几个方法可以综合比较下

方法1:
function osort(arr){var result ={};var newarr=[];for(var i=0;i{if(!result[arr[i]]){newarr.push(arr[i])result[arr[i]]=1}}return newarr}

原文出处:http://blog.sina.com.cn/s/blog_77a4568a0101d4lq.html

方法2:
遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 用到两个函数:for ...in 和 indexof() var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];function unique(arr){// 遍历arr,把元素分别放入tmp数组(不存在才放)var tmp = new array();for(var i in arr){//该元素在tmp内部不存在才允许追加if(tmp.indexof(arr[i])==-1){}}return tmp;} 方法3: 把目标数组arr的元素值和键的位置调换 自动就把重复的元素给删除掉了,调换后的样子:array('qiang'=>1,'ming'=>1,'tao'=>1)

方法4

 

/*** 去除数组重复元素*/function uniquearray(data){ data = data || []; var a = {}; for (var i=0; i) { var v = data[i]; if (typeof(a[v]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (var i in a){ data[data.length] = i; } return data; }

 

 

 

方法都差不多第三个方法想法还是蛮高明的~

转载于:https://www.cnblogs.com/yy-hh/p/4591852.html

总结

以上是凯发k8官方网为你收集整理的前端面试高频题:删除数组重复元素的多种方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图