资讯专栏INFORMATION COLUMN

数组去重的方法不完全汇总

LiveVideoStack / 2766人阅读

摘要:如果在中找不到,说明是第一个元素如果索引得到不是当前元素索引,说明当前元素是重复值中的方法。判断数组中是否包含某个元素最容易想到的遍历对象缓存

// 如果在ret中找不到el,说明是第一个元素
function unique(arr) {
    let ret = []
    arr.forEach(function (element) {
        if (ret.indexOf(element) === -1) {
            ret.push(element)
        }
    }, this);
    return ret
}
// 如果indexOf索引得到不是当前元素索引,说明当前元素是重复值
function unique(arr) {
    return arr.filter((el, index) => arr.indexOf(el) === index)
}
// ES6中的方法。判断数组中是否包含某个元素
function unique(arr) {
    let ret = []
    arr.forEach(function (el) {
        if (!ret.includes(el))
            ret.push(el)
    })
    return ret
}
// 最容易想到的遍历
function unique(arr) {
    let ret = [], len = arr.length
    for(let i = 0; i < len; i++) {
        for(let j = i + 1; j < len; j++) {
            if(arr[j] === arr[i]) {
                j = ++i
            }
        }
        ret.push(arr[i])
    }
    return ret
}
// 对象缓存
function unique(arr) {
    let res = []
    let obj = {}
    for(let t of arr) {
        if(!obj[t]) {
            res.push(t)
            obj[t] = 1
        }
    }
    return res
}
// Map
function unique(arr) {  
    let ret = []
    let tmp = new Map()
    for(let i = 0; i < arr.length; i++) {
        if (!tmp.get(arr[i])) {
            tmp.set(arr[i], 1)
            ret.push(arr[i])
        }
    }
    return ret
}
// Set
function unique(arr) {
    let set = new Set(arr)
    return Array.from(set)
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85058.html

相关文章

  • JS数组专题2️⃣ ➖ 数组去重

    距离上次发文,已经有一段时间了,最近工作比较忙,这不眼看快双十一了,就相当于给大家一些福利吧! showImg(https://segmentfault.com/img/remote/1460000016538082?w=250&h=250); 一、什么是数组去重 简单说就是把数组中重复的项删除掉,你 GET 到了吗 ?下面我将简单介绍下几种基本的方法及其优缺点。 二、方法汇总 两层循环 无相同...

    tunny 评论0 收藏0
  • 温故js系列(7)-数组去重由慢到快由繁到简

    摘要:前端学习教程开发模块化规范化工程化优化工具调试值得关注的博客面试前端资源汇总欢迎提斧正数组去重数组去重由慢到快由繁到简演化去重写法,箭头函数为新写法。在去重过程中,原数组都是不变的。它类似于数组,但是成员的值都是唯一的,没有重复的值。 前端学习:教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-前端资源汇总 欢迎提issues斧正:数组去重 JavaSc...

    mgckid 评论0 收藏0
  • 2018前端面试题汇总(更新...)

    摘要:方法一因为是从开始的方法二获取怎么实现和截取考察的用法。翻转字符串和删除数组的第一元素将字符串转化为数组。将数组进行翻转。将数组转换为字符串。被删除的第一个元素删除后的数组数组去重如果找到不到就把放到新数组里 1.运算题的结果 var name=jay var pe={ name:kang, getname:function () { ...

    smartlion 评论0 收藏0
  • JavaScript专题系列20篇正式完结!

    摘要:写在前面专题系列是我写的第二个系列,第一个系列是深入系列。专题系列自月日发布第一篇文章,到月日发布最后一篇,感谢各位朋友的收藏点赞,鼓励指正。 写在前面 JavaScript 专题系列是我写的第二个系列,第一个系列是 JavaScript 深入系列。 JavaScript 专题系列共计 20 篇,主要研究日常开发中一些功能点的实现,比如防抖、节流、去重、类型判断、拷贝、最值、扁平、柯里...

    sixleaves 评论0 收藏0
  • JavaScript专题之数组去重

    摘要:专题系列第三篇,讲解各种数组去重方法,并且跟着写一个前言数组去重方法老生常谈,既然是常谈,我也来谈谈。它类似于数组,但是成员的值都是唯一的,没有重复的值。 JavaScript 专题系列第三篇,讲解各种数组去重方法,并且跟着 underscore 写一个 unique API 前言 数组去重方法老生常谈,既然是常谈,我也来谈谈。 双层循环 也许我们首先想到的是使用 indexOf 来循...

    fsmStudy 评论0 收藏0

发表评论

0条评论

LiveVideoStack

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<