一些函數的簡單實現

最近在牛客網刷了一些題,接下來給你們奉上個人一些函數的簡單實現,但願能夠對你們有所幫助。也看成給本身作一個簡單的筆記。javascript

查找元素在數組中的位置

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))
//這是第二種

歡迎你們發散思惟共同討論,若有錯誤請指正。java

相關文章
相關標籤/搜索