实现数组去重的多种方法

ES6

let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
function unique(arr){
  // return Array.from(new Set(arr))
   return [...new Set(arr)]
}
unique(arr)

Array.from将类数组对象和可遍历的对象转换为数组 阮一峰ES6

ES5

// 返回新数组  indexOf方法
let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
        let newArr = []
        arr.map((item) => {
            return newArr.indexOf(item) === -1 ? newArr.push(item) : ''
        })
        console.log(newArr)
// 返回新数组 filter方法
        let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
        let newArr = arr.filter((item, index) => {
            return arr.indexOf(item) === index
        })
        console.log(newArr)
// 原数组操作  splice方法
        let arr = [1, 2, 2, 3, 4, 100, 2, 100, 7, 7];
        let newArr = []
        for (let i = 0; i < arr.length; i++) {
            if (newArr.indexOf(arr[i]) === -1) {
                newArr.push(arr[i])
            } else {
                arr.splice(i, 1)
                i--
            }
        }
        console.log(arr)
// 对象的属性不能重复的特性
function del(arr) {
            let obj = {}
            let t = []
            for (let i = 0; i < arr.length; i++) {
                if (!obj[arr[i]]) {
                    obj[arr[i]] = 1
                    t.push(arr[i])
                }
            }
            return t
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 5,786评论 0 1
  • 一、ES6简介 ​ 历时将近6年的时间来制定的新 ECMAScript 标准 ECMAScript 6(亦称 ...
    一岁一枯荣_阅读 11,281评论 8 25
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 5,465评论 0 8
  • Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组(Array)和对象...
    呼呼哥阅读 9,909评论 0 2
  • 部分列子引用的阮一峰ES6教程中的例子 这篇文章主要是自己经常用得一些方法总结, 想全篇学习es6, 可以看阮一峰...
    有情怀的程序猿阅读 3,733评论 0 1