两种常用的javascript数组去重方法思路及代码

 更新时间:2013年03月26日 11:31:52   作者:  
第一种是常规的方法:建一个新的数组存放结果,for循环中每次从原数组中取出一个元素,用indexOf查找新数组中是否有该元素,至于第二种详细的看下本文哦

第一种是比较常规的方法
思路:
1.构建一个新的数组存放结果
2.for循环中每次从原数组中取出一个元素,用indexOf查找新数组中是否有该元素
3.若没有,则存到结果数组中

复制代码 代码如下:

Array.prototype.unique1 = function(){
var res = [];
for(var i = 0; i < this.length; i++){
if(res.indexOf(this[i]) == -1){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1())

此基础上可以略微优化,但原理不变,效果也不明显
复制代码 代码如下:

Array.prototype.unique1 = function(){
var res = [this[0]];//直接将原数组中的第一个元素存入构建的新数组中
for(var i = 1; i < this.length; i++){//循环从第二个元素开始
if(res.indexOf(this[i]) == -1){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1())

第二种方法比上面的方法效率要高
思路:
1.先将原数组进行排序
2.检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置
3.如果不相同,则将该元素存入结果数组中
复制代码 代码如下:

Array.prototype.unique2 = function(){
this.sort(); //先排序
var res = [this[0]];
for(var i = 1; i < this.length; i++){
if(this[i] !== res[res.length - 1]){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique2())

相关文章

  • javascript数组去重方法分析

    javascript数组去重方法分析

    这篇文章主要介绍了javascript数组去重方法,通过2个示例对比分析了javascript数组去重的原理与操作技巧,需要的朋友可以参考下
    2016-12-12
  • ionic实现下拉刷新载入数据功能

    ionic实现下拉刷新载入数据功能

    这篇文章主要为大家详细介绍了ionic实现下拉刷新载入数据功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Javascript中的prototype与继承

    Javascript中的prototype与继承

    本文主要介绍了Javascript中的prototype与继承,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • AutoSave/自动存储功能实现

    AutoSave/自动存储功能实现

    AutoSave/自动存储功能实现...
    2007-03-03
  • JavaScript仿京东实现秒杀倒计时案例详解

    JavaScript仿京东实现秒杀倒计时案例详解

    这篇文章主要为大家详细介绍了如何利用JavaScript实现京东秒杀倒计时效果,文中示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Bootstrap carousel轮转图的使用实例详解

    Bootstrap carousel轮转图的使用实例详解

    图片轮播效果在Web中常常能看到,很多人也称之为幻灯片。这篇文章主要给大家介绍Bootstrap carousel轮转图的使用实例详解,需要的朋友可以参考下
    2016-05-05
  • 用js编写简单的贪吃蛇小游戏

    用js编写简单的贪吃蛇小游戏

    这篇文章主要为大家详细介绍了用js编写简单的贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • BOM操作querySelector querySeletorAll获取标签对象

    BOM操作querySelector querySeletorAll获取标签对象

    这篇文章主要为大家介绍了BOM操作querySelector querySeletorAll获取标签对象步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 常用DOM整理

    常用DOM整理

    js在操作DOM中存在着许多跨浏览器方面的坑,本文花了我将近一周的时间整理,我将根据实例整理那些大大小小的“坑”。
    2015-06-06
  • TypeScript入门-基本数据类型

    TypeScript入门-基本数据类型

    本文主要介绍了TypeScript基本数据类型的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03

最新评论