数组去重的N种方法(面试必备)

本文探讨了面试中常见的数组去重问题,包括使用ES6语法、双重循环、利用下标、排序以及数据结构等多种方法,并提示部分方法可能存在兼容性问题。文章鼓励读者分享更多去重技巧进行交流学习。
摘要由CSDN通过智能技术生成

在面试的过程中,经常被问到Array (数组)如何去重,回答的好不好直接可以影响到offer拿不拿的到,还可以为作为一个谈薪资的筹码。(还有其他的可以提供一起来交流学习)

数组去重的N个方法:

通过ES6中的Set语法(会有兼容性问题):

 function unique (arr) {
   
      return Array.from( new Set(arr))
    }  
    function unique1 (arr) {
   
      return [ ...new Set(arr)] 
    }
   var arr  = [ 1, 2, '2', 'a', 'b', '2', 3, 5, 'a', '{}','{}']
    console.log(unique(arr), 'unique', unique1(arr))
    // [1, 2, "2", "a", "b", 3, 5, "{}"] 结果是一样的

利用ES6中indexOf() + fifter()方法去重:

function unique (arr) {
   
      return Array.isArray(arr) && (
        arr.filter((item, index, arr) => {
   
        // indexOf()会找当前元素item在数组中的第一次出现时的下标
          return arr.indexOf(item) === index
        })
      )
    }  
   var arr  = [ 1, 2, '2', 'a', 'b', '2', 3, 5, 'a', '{}','{}']
    console.log(unique(arr))
    // [1, 2, "2", "a", "b", 3, 5, "{}"]

双重for循环+splice()改变原数组的方法去重(⚠️:对于数组类型(Number),用于排序):


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值