js数组去重的方法

本文介绍了六种不同的JavaScript数组去重方法:for嵌套for删除、indexOf与includes判断、对象key唯一性利用、Set与Map数据结构、sort排序法。这些方法适用于不同场景,展示了从传统到现代技术的演变。
摘要由CSDN通过智能技术生成

1、for嵌套for,使用splice删除原数组重复的元素

	function deleteRepetition(arr){
      for (let i = 0; i < arr.length; i++) {
        for (let j = i + 1; j < arr.length; j++) {
          if(arr[j]==arr[i]){
            arr.splice(j,1)
            j--
          }
        }
      }
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]

2、indexOf方法去重,返回新数组

	function deleteRepetition(arr){
      let newArr=[]
      for (let i = 0; i < arr.length; i++) {
        if(newArr.indexOf(arr[i])==-1){
          newArr.push(arr[i])
        }
      }
      return newArr
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]

3、includes方法去重,返回新数组

	function deleteRepetition(arr){
      let newArr=[]
      for (let i = 0; i < arr.length; i++) {
        if(!newArr.includes(arr[i])){
          newArr.push(arr[i])
        }
      }
      return newArr
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]

4、利用对象key属性唯一的特性去重

	function deleteRepetition(arr){
      let obj={}
      let newArr=[]
      for (let i = 0; i < arr.length; i++) {
        if(!obj[arr[i]]){
          obj[arr[i]]=1
          newArr.push(arr[i])
        }
      }
      return newArr
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]

4、利用ES6中的Set去重

	function deleteRepetition(arr){
      return Array.from(new Set(arr))
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]

或者

	console.log(...new Set([0,1,0,2,5,2]))   // 0,1,2,5

5、利用ES6中的Map去重

	function deleteRepetition(arr){
      let map=new Map()
      let newArr=[]
      for (let i = 0; i < arr.length; i++) {
        if(!map.has[arr[i]]){
          map.set(arr[i])
          newArr.push(arr[i])
        }
      }
      return newArr
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]

6、利用sort方法去重

	function deleteRepetition(arr){
      let sortArr=arr.sort()
      let newArr=[]
      for (let i = 1; i < sortArr.length; i++) {
        if(sortArr[i]!=sortArr[i-1]){
          newArr.push(sortArr[i])
        }
      }
      return newArr
    }
    var arr=[0,1,0,2,5,2]
    deleteRepetition(arr)   // [0,1,2,5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值