字符串去重、数组去重、对象去重、嵌套去重(全)

本文整理了程序员日常中常见的数据去重方法,包括字符串、数组、对象及嵌套数据的去重策略。涉及indexOf、search、includes、Set等方法,以及对象转换和多维数组去重的技巧。
摘要由CSDN通过智能技术生成
去重这个词,在我们程序员的日常中还是很常见的,字符串、数组、对象、嵌套形式的去重,各种去重应用场景,最近有空整理整理各种数据的去重方法,这里整理的都是按照常规的数据,特殊的先不考虑,主要是看处理方法和思路。

一、字符串去重

1.indexOf 方法
const str = 'asdfasd'
const ChangeStr = (data) => {
   
  let newstr = ''
  for(i in data){
   
    if(i==data.indexOf(data[i])){
   
     //for循环遍历,判断当前值是否等于当前下标
    //indexOf方法返回第一个查找元素下标
    //注意:for循环的 i 类型都是string,所以不要用严格等于判断
      newstr += data[i]
    }
  }
  return newstr
}
//if()里的条件判断,判断data和newstr都可以
console.log(ChangeStr(str))
// "asdf"
2.search 方法
const str = 'asdfasd'
const ChangeStr = (data) => {
   
  let newstr = ''
  for(i in data){
   
    if(i==data.search(data[i])){
   
   //indexOf与search方法一样,获取元素下标,没有返回-1
      newstr += data[i]
    }
  }
  return newstr
}
//if()里的条件判断,判断data和newstr都可以
console.log(ChangeStr(str))
// "asdf"
3.includes 方法
const str = 'asdfasd'
const ChangeStr = (data) => {
   
  let newstr = ''
  for(i in data){
   
    if(!newstr.includes(data[i])){
   
    //es6的新语法,过程是严格判断
      newstr += data[i]
    }
  }
  return newstr
}
console.log(ChangeStr(str),'ChangeStr')
// "asdf"
4.Set 方法
 const str = 'asdfasd'
 const ChangeStr = ( data ) =>  [... new Set(data)].join('')
 //用es6的Set去重,转成数组,再转字符串
 console.log( ChangeStr( str ), 'ChangeStr' )
// "asdf"

这里双重for循环就不讲了,循环用少用,耗性能。


二、数组去重 string | number [ ]

1.indexOf 方法
const data = [ 1, 2, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值