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