说到数组去重,以前只想到 双重循环来遍历去重 还有利用对象属性无重复性来去重
后来经某位高人的提示 得到下面这个方法
先排序 排序后再比较第i和第i+i个是否相等 相等则删除 否则则继续 算法确实优化了很多
1.先排序
function ovArr(arr){
if(arr instanceof Array){
var newArr = arr.sort();
for(var i=0;i<newArr.length;i++){ //注意长度每次都要重新算
if(newArr[i]===newArr[i+1]){ //注意是 ===
newArr.splice(i+1,1);
i--;
}
}
return newArr;
}else{
return arr;
}
}
2.双重循环
a. 删掉元素
function ovArr(arr){
if(arr instanceof Array){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){arr.splice(j,1);j--;}
}
}
}
return arr;
}
b.组成新的
function ovArr(arr){
if(arr instanceof Array){
var newArr=[];
for(var i=0;i<arr.length;i++){ // 注意:i<arr.length 因为后面push的是arr[i],最后一项也要
var tag=true;
for(var j=i+1;j<arr.length;j++){
if(arr[i]===arr[j]){tag=false;break;}
}
if(tag){
newArr.push(arr[i]); //
}
}
return newArr;
}
return arr;
}
效率没删除元素的好
3.对象属性无重复性:
function ovArr(arr){
if(arr instanceof Array){
var obj={},newArr = [];
for(var i=0;i<arr.length;i++){
if(obj[arr[i]+(typeof arr[i])]){ //用typeof 区分类型数字和字符串 比如元素为1和'1'
continue;
}else{
newArr.push(arr[i]);
obj[arr[i]+(typeof arr[i])] = true;
}
}
return newArr;
}
return arr;
}
分享到:
相关推荐
JavaScript数组去重的几种方法数组去重的几种方法新建数组法同一个数组删除法利用object/map/set去重法先排序再移除法Filter与indexO
JavaScript数组去重功能的设计与实现.pdf
【JavaScript源代码】JavaScript数组去重问题的深入研究.docx
javascript数组去重小结_.docx
JavaScript Array数组去重源码下载
本文实例总结了JavaScript数组去重的方法。分享给大家供大家参考,具体如下: 数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的...
下面小编就为大家分享一篇JavaScript 数组去重并统计重复元素出现的次数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
javascript数组去重是一个比较常见的需求,解决方法也有很多种,网上都可以找到答案的,下面小编给大家整理了一份关于同类型的数组去重的方法,先给大家介绍下简单实现思路。 思路: 遍历数组,一一比较,比较到相同...
本篇文章主要介绍了JavaScript数组去重的6个方法。具有一定的参考价值,下面跟着小编一起来看下吧
本文实例讲述了javascript数组去重方法。分享给大家供大家参考,具体如下: 方法一. 思路:创建一个新的空数组,循环遍历旧数组,用indexOf()方法,可以取得元素在数组中的位置,如果值为-1表示不存在。那么新数组用...
Javascript 数组去重的四种方法 四种算法来实现这个目的: 第一种方法: Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i < this.length; i++) //遍历当前数组 {...
主要给大家介绍了关于JavaScript数组去重的几种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
JavaScript数组去重是前端面试酷爱的问题,问题简单而又能看出程序员对计算机程序执行过程的理解如何。数组去重的方法有很多,到底哪种是最理想的我不清楚。于是我测试了下数组去重的效率。测试二十万个数据,随着...
JavaScript 数组去重!!
javascript实现数组去重的多种方法_.docx
数组去重是面试中经常被问到的热点问题,数组去重的方法有很多,下面谈谈个人理解。 概括 数组去重是一个比较常见的算法考察点,实现去重的方式无非就是唯一性或者非唯一性,简而言之,就是选出唯一的或者去掉不唯一...
实际当中经常会遇到数组重复值的问题,这是最为基础的方法,利用indexOf或for循环去除数组中重复值
JavaScript数组去重经常出现在前端招聘的笔试题里,比如:有数组vararr=['a','b','c','1',0,'c',1,'',1,0],请用JavaScript实现去重函数unqiue,使得unique(arr)返回['a','b','c','1',0,1,'']1.正确。别小看这个考点...