一些函数的简单实现

最近在牛客网刷了一些题,接下来给大家奉上我的一些函数的简单实现,希望可以对大家有所帮助。也当作给自己做一个简单的笔记。

查找元素在数组中的位置

const indexOf = (arr, item)  => arr.indexOf(item);

数组求和

const sum = arr =>  arr.reduce((prev,next) => prev + next, 0)

移除数组内的指定项

const remove = (arr, item) => {

    var newArr = arr.filter(t => t !== item})

    return newArr
}

    //第一种实现,借用filter方法过滤掉指定项

const remove = (arr, item) => {
  let newArr = [];
  arr.forEach( t => {
    if(t!==item){
    newArr.push(t)
    }
  })
  return newArr;
}//正常的数组遍历方法,还有很多实现方法这里就不赘述了,大家自行发散思维

统计某一项出现的次数

const count = (arr, item) => arr.reduce((prev, cur)=> cur === item ? prev + 1 : prev, 0)
//这个算是运用了一下reduce用来统计也是棒棒哒

找出数组中重复的项

 const duplicates = arr => {  
      let duplicatesArr = [];
        arr.forEach(t => {  
          if (arr.indexOf(t) !== arr.lastIndexOf(t) && duplicatesArr.indexOf(t) === -1) {    
            duplicatesArr.push(t);  
          } 
       }) 
      return duplicatesArr;
    }
    //思路为如果正向查找和反向查找index不同,这个项就重复过。

找出某项在数组中出现的所有位置

const findAllOccurrences = (arr, target) => {  
  let ret = [];
    arr.forEach((t, i) =>{  
      if (t === target) {   
        ret.push(i)   
      } 
 })  
  return ret;
}

数组的去重

const unique = arr => [... new Set(arr)]
//这是我的第一种实现方式 利用es6的Set的特性 来达到去重的目的
const unique = arr => arr.filter((t,i)=>i === arr.indexOf(t))
//这是第二种

欢迎大家发散思维共同讨论,如有错误请指正。

脚本宝典为你提供优质服务
脚本宝典 » 一些函数的简单实现

发表评论

提供最优质的资源集合

立即查看 了解详情