js数组去重

//数组去重

//利用splice

function unique1(list) {

    var i,j,len=list.length

    for(var i=0;i<len;i++){

        for(var j = i+1;j<len;j++){

            if(list[i] == list[j]){

                list.splice(j,1)

                len--;

                j--;

            }

        }

    }

    return list

}

console.log(unique1([1,2,2,2,2,4,3,3,4]))


//双循环去重法

function unique2(list) {

    var result = [];

    for(var i=0;i<list.length;i++){

        for(var j=i+1;j<list.length;j++){

             if(list[i]===list[j]){

                j= ++i

            }

        }

        result.push(list[i])

    }

    return result

}

console.log(unique2([1,2,2,2,2,4,3,3,4]))


// 利用对象键值对去重

function unique3(list) {

    var result = {};

    var r = []

    for(var i=0;i<list.length;i++){

        if(result.hasOwnProperty(list[i])){

        }else{

            result[list[i]] = [];

            r.push(list[i])

        }

    }

    return r

}

console.log(unique3([1,2,2,2,2,4,3,3,4]))


//sort思想

function unique4(list) {

    list.sort(function(a,b){

        return a-b

    })

    for(var i=0;i<list.length;i++){

        if(list[i]===list[i+1]){

            list.splice(i,1)

            i--

        }

    }

    return list

}

console.log(unique4([1,2,2,2,2,4,3,3,4]))


//利用indexOf以及forEach

function unique5(list) {

    var result = [];

    list.forEach(function(item,index){

        if(result.indexOf(item)<0){

            result.push(item)

        }

    })

    return result

}

console.log(unique5([1,2,2,2,2,4,3,3,4]))


// 利用Set数据结构

function unique6(list){

    return Array.from(new Set(list))

}

console.log(unique6([1,2,2,2,2,4,3,3,4]))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,168评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,322评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,142评论 2 17
  • 1.js数组去重的常用方法总结 1.第一种是比较常规的方法思路:1.构建一个新的数组存放结果2.for循环中每次从...
    Smallbore阅读 617评论 0 3
  • var navigator = navigator || {};var window = window || {}...
    DF_Sky阅读 1,545评论 0 0

友情链接更多精彩内容