js 数组去重

来源:互联网 发布:淘宝上精仿手表的店铺 编辑:程序博客网 时间:2024/05/01 07:18

说明:这里贴出两种去重方式,第一种比较简洁优雅,第二种效率更高。两种本质上都是有那个hash思想来去重的。

var arr=[    {name:"cayley",from:"shanghai"},    {name:"mark",from:"anhui"},    {name:"cayley",from:"shanghai"},    {name:"test",from:"anhui"},    {name:"cayley",from:"shanghai"},    {name:"mark",from:"anhui"},    1,    2,    1];function removeRepeatArray(arr) {    var data={};    arr.forEach(function(item){        data[JSON.stringify(item)]=item;    });    arr=Object.keys(data).map(function (item) {        return JSON.parse(item)    });    return arr;}function removeRepeatArray2(arr) {    var hash={};    var data=[];    for(var i=0;i<arr.length;i++){        if(!hash[JSON.stringify(arr[i])]){            hash[JSON.stringify(arr[i])]=true;            data.push(arr[i]);        }    }    return data;}console.time('removeRepeatArray');console.log(removeRepeatArray(arr));console.timeEnd('removeRepeatArray');console.time('removeRepeatArray2');console.log(removeRepeatArray2(arr));console.timeEnd('removeRepeatArray2');
结论:通过耗时对比,很明显可以看出方法二的效率高于方法一。

0 0
原创粉丝点击