Tag标签 | 收藏本站 | 设为首页 | 参考书籍 | web前端技术交流①群:WEB前端技术交流群 会员登录 | 会员注册

首页文字描述

会员投稿 RSS订阅 专注web前端: 要么读书、要么旅行,身体和精神必须要有一个在路上。【每天一小步,成功一大步】
搜索: 您的位置主页 > WEB前端 > Jquery/JS > javascript数组去重 核心思想
隐藏/显示侧边栏

javascript数组去重 核心思想

2014-09-29 12:08    来源:未知    责任编辑:admin    字号【
原标题:Javascript数组去重
在写Javascript的时候经常遇到数组去重的问题,一直在基于jQuery写代码,在遇到数组需要去重的时候经常使用$.unique方法,由于开发测试环境是chrome浏览器,所以并没有察觉到自己已经错了这么久,直到昨天才发现$.unique在IE中是存在一些问题。

查看了jQuery的API,原来$.unique只处理删除DOM元素数组,而不能处理字符串或者数字数组。看了下jQuery源码,$.unique使用了Sizzle.uniqueSort的方法,好像在chrome/Firefox中,由于浏览器支持compareDocumentPosition则处理了字符串或数字数组,所以能在非IE浏览器中能正常排序。

参考了一下别人写的去重方法,自己稍微做了些修改:

Array.prototype.unique = function () {
    if (this.length === 0) return [];
    this.sort();
    var re = [this[0]];
    for (var i = 1; i < this.length; i++) {
        if (this[i] !== re[re.length - 1]) {
            re.push(this[i]);
        }
    }
    return re;
}

使用方法:[1,1,2].unique()
此方法只适用于数字或字符串数组的去重。

转载至:小虾虎鱼 http://www.xiaoboy.com/detail/1341545083.html

更多
Tags 标签:
责任编辑:admin
设为首页 | 加入收藏 | 关于我们| 版权声明 | 在线留言 | 网站地图 |