JavaScript 数组去重

JavaScript 数组去重

方法:在原型链上编写,利用对象的属性不能相同的特点进行去重,把数组的属性值添加为对象的属性名(一个对象不能有两个同名的属性)。
代码实现:

// 在原型链封装一个方法
Array.prototype.unique = function () {
    var temp = [], // 空数组
        obj = {},  // 空对象
        len = this.length; // 定义一个变量接收调用数组的length值。(作用:减少循环运算)
    // 循环遍历数组
    for(var i = 0; i < len; i ++) { 
        // 判断对象里面有没有这个属性,值取反,为true执行代码块,为false跳过,执行下一次循环,去除重复。
        if(!obj[this[i]]) {
            // 把数组属性值添加为对象属性名,并给对象属性名赋值(注:对象属性不要为0或this[i])
            obj[this[i]] = "Hello World!!!";
            // 在temp里面添加数据
            temp.push(this[i]);
        }
    }
    return temp; // 返回这个数组
};

调用这个方法:
用一个超级数组去测试

var newArr = [1,  2, 3, 5, 3, 1, 5, 6, 7, 4, 1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4, 1, 1, 2, 3, 5, 3, 1, 
6, 7, 4, 1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4, 1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4, 1, 1, 2, 3, 5, 3, 1, 5,
 6, 7, 4, 8, "a", "b", "c", "b", "a", "c", "a", "b", "a", "b", "c", "b", "a", "c", "c", "a", "b", 
"c","b", "a", "c", "c", "a", "b"]

Array.prototype.unique = function () {
            var temp =  {};
            var arr = [];
            var len = this.length
            for(var i = 0; i < len; i ++) {
                if(!temp[this[i]]) {
                    temp[this[i]] = "abc";
                    arr.push(this[i]);
                }
            }
            return arr;
        }

console.log(newArr.unique());

结果为:
去重前:
前
去重后:
后

以上就是小编对javascript数组去重问题的研究,今后会不断改进代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值