美文网首页
数组去重的方法

数组去重的方法

作者: 从简ya | 来源:发表于2018-06-28 15:05 被阅读0次

方案一:
遍历数组中的每一项,拿每一项和它后面的项依次比较,如果相同了,则把相同的这一项在原来数组中删除

var ary=[1,1,2,2,3,3,4,2,2,2,2,2,3,3,3,4,4,4,1,1];
for(var i=0;i<ary.length-1;i++){
    var cur=ary[i];
    for (var j=i+1;j<ary.length;j++){
        if(cur==ary[j]){
            ary.splice(j,1)
            j--;
        }
    }
}

方案二:
利用indexOf来验证当前数组中是否包含某一项,包含把当前项删除掉(不兼容IE6~8)

var ary=[5,5,3,1,1,2,2,3,3,4,2,2,2,2,2,3,3,3,4,4,4,];
for(var i=0;i<ary.length;i++){
    var cur=ary[i];
    var next=ary.slice(i+1);
    if(next.indexOf(cur)>-1){
        ary.splice(i,1);
        i--;
    }
}
console.log(ary.sort(function(a,b){
    return a-b;
}))

方案三:
遍历数组中的每一项,把每一项作为新对象的属性名和属性值存储起来,例如:当前项1,对象中存储{1:1}
在每一次向对象中存储之前,首先看一下原有对象中是否包含了这个属性(typeof obj[xxx]==='undefined'说明当前对象中没有xxx这个属性),如果已经存在这个属性说明数组中的当前项是重复的(1-在原有数组中删除这一项 2-不再像对象中存储这个结果),如果不存在,把当前项作为对象的属性名和属性值存储进去

var ary=[5,5,3,1,1,2,2,3,3,4,2,2,2,2,2,3,3,3,4,4,4,];
var obj={};
for(var i=0;i<ary.length;i++){
    var cur=ary[i];
    if(typeof obj[cur]!=='undefined'){
        ary[i]=ary[ary.length-1];//用splice删除当前项,会让后面所有项向前挪一位(用最后一项代替重复项,后面所有项不受影响)
        ary.length--;//删除数组最后一项
        i--;
        continue;
    }
    obj[cur]=cur;
}

方案四:
相邻比较法,首先给数组进行排序,然后相邻两项比较,相同的话把后一项在数组中去掉

var ary=[5,5,3,1,1,2,2,3,3,4,2,2,2,2,2,3,3,3,4,4,4,];
ary.sort(function(a,b){
    return a-b;
})
var aryCur=[ary[0]];
for(var i=1;i<ary.length;i++){
    if(ary[i]!==aryCur[aryCur.length-1]){
        aryCur.push(ary[i])
    }
}

相关文章

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • 数组去重方法

  • 数组去重方法

    const array = [1, 2, 3, '1', true, 'true', 9, 1, true] 使用...

网友评论

      本文标题:数组去重的方法

      本文链接:https://www.haomeiwen.com/subject/oxxgyftx.html