最近在牛客网刷了一些题,接下来给你们奉上个人一些函数的简单实现,但愿能够对你们有所帮助。也看成给本身作一个简单的笔记。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