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

js数组去重的方法

作者: 曼木子 | 来源:发表于2020-06-28 15:36 被阅读0次

第一种 ES6 中new set

var a = [1,2,3,4,4,5,5,7,8,8,9,10]
var newa = Array.from (new Set(a))
console.log(newa) // [1,2,3,4,5,7,8,9,10]

第二种 利用indexof

var a = [1,2,3,4,4,5,5,7,8,8,9,10]
function unique(arr){
    var newarr = []
    for(let item of arr){
        if(newarr.indexOf(item) ==-1){
            newarr.push(item)
        }
    }
    return newarr
 }
 var newa = unique(a)
 console.log(newa) // [1,2,3,4,5,7,8,9,10]

第三种 利用对象的key值唯一的特性

var a = [1,2,3,4,4,5,5,7,8,8,9,10]
function unique(arr){
    var newarr = []
    var objtmp = {}
    for(let item of arr){
        if(!objtmp[item]){
            newarr.push(item)
            objtmp[item] = 1
        }
    }
    return newarr
 }
 var newa = unique(a)
 console.log(newa) // [1,2,3,4,5,7,8,9,10]

第四种 利用includes()

var a = [1,2,3,4,4,5,5,7,8,8,9,10]
function unique(arr){
    var newarr = []
    for(let item of arr){
        if(!newarr.includes(item)){
            newarr.push(item)
        }
    }
    return newarr
 }
 var newa = unique(a)
 console.log(newa) // [1,2,3,4,5,7,8,9,10]

第五种 利用hasOwnProperty,返回的keys为字符串的形式

var a = [1,2,3,4,4,5,5,7,8,8,9,10]
function unique(arr){
    var newarr = []
    var objtmp = {}
    for(let item of arr){
        if(!objtmp.hasOwnProperty(item)){
            objtmp[item] = 1
            newarr.push(item)
        }
    }
    //return Object.keys(newarr)
    return newarr
 }
 var newa = unique(a)
 console.log(newa) // [1,2,3,4,5,7,8,9,10]

第六种 利用splice

var arr = [1,2,3,4,3,2,3,4,6,7,6];
console.log(arr)
function unique(arr){
    for(let i = 0;i<=arr.length;i++){
        for(let j = i+1;j<=arr.length;j++){
            if(arr[i]===arr[j]){
                arr.splice(arr[j],1)
                j--;
                i--;
            }   
         }
     }
}
unique(arr)
console.log(arr)

第七种 利用filter和indexOf

var arr = [1,2,3,4,3,2,3,4,6,7,6];
console.log(arr)
function unique(arr){
    return arr.filter((item,index)=>{
        return arr.indexOf(item) === index
    })
}
var arr2 = unique(arr)
console.log(arr2)
console.log(arr)

第八种 利用两层for循环和break,第二层的j不能用let定义

var arr = [1,2,3,4,3,2,3,4,6,7,6];
function unique(arr){
    let result = []
    for(let i = 0;i<arr.length;i++){
        for(var j = 0;j<result.length;j++){
            if(arr[i] == result[j]){
                break
            }
        }
        if(j == result.length){
            result.push(arr[i]);
        }
    }
    return result
}
var arr2 = unique(arr)
console.log(arr2)
console.log(arr)

第九种 扩展运算符(...)

var arr = [1,2,3,4,3,2,3,4,6,7,6];
function unique(arr){
    return [...new Set(arr)]
}
var arr2 = unique(arr)
console.log(arr2)
console.log(arr)

第十种 利用reduce 和 includes,reduce中第一函数不能加{}

var arr = [1,2,3,4,3,2,3,4,6,7,6];
function unique(arr){
    return arr.reduce((pre,cur)=>pre.includes(cur) ? pre : [...pre,cur],[])
}
var arr2 = unique(arr)
console.log(arr2)
console.log(arr)
// reduce的用法
// 语法格式如下:
// array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
// 其中function(total,currentValue, index,arr)中,
// total 必需。初始值, 或者计算结束后的返回值。
// currentValue 必需。当前元素
// currentIndex 可选。当前元素的索引
// arr  可选。当前元素所属的数组对象。

第十一种 利用filter和map数据结构去重

var arr = [1,2,3,4,3,2,3,4,6,7,6];
function unique(arr){
    let seen = new Map()
    return arr.filter(item=>{
        return !seen.has(item) && seen.set(item,1)
    })
}
var arr2 = unique(arr);
console.log(arr2)
console.log(arr)

相关文章

  • js中数组对象去重的方法

    采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法 参考js中数组对象去重的方法

  • 前端开发备忘录

    js 数组去重的方法 最常用的方式 对象键值法去重 es6 Set方法一键去重 js常见的循环与遍历以及不同循...

  • js 数组去重方法

    1、借助ES6[https://so.csdn.net/so/search?q=ES6&spm=1001.2101...

  • JS数组去重常见方法分析

    数组去重是开发中经常会遇到的问题,也是面试时经常会考到的。JS实现数组去重可以有多种方法: 一、简单的去重方法 用...

  • JS 数组去重的方法

  • js数组去重的方法

    第一种 ES6 中new set 第二种 利用indexof 第三种 利用对象的key值唯一的特性 第四种 利用i...

  • js 数组去重的方法

    1.最傻的方法,就是for 循环,具体的实例有很多。1.1 新数组,与旧数组循环比较,如果不等,将旧数组的当前项加...

  • 5.18 总结

    1 数组去重 js数组去重的常用方法总结 2 定时器的返回值是定时器的编号 定时器的执行;(全部js代码执...

  • 数组的去重和数组中对象的去重

    数组中对象去重 方式1 jq方式 方式2 原生js方式 普通数组的去重 方式1 普通的数组去重js 方式2 Se...

  • js数组去重的几种方法

    js去重的几种方法: 1.使用indexOf()方法---[a.检查当前数组是否存在;b.比较数组的下标---(借...

网友评论

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

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