一些常用函数的简单实现
2 分钟阅读
最近在牛客网刷了一些题,通过这些题目也对自己的js进行了一定的复习,接下来给大家奉上我的一些函数的简单实现,希望可以对大家有所帮助。也当作给自己做一个简单的笔记。
P.S.:由于牛客网不支持箭头函数语法,所以所有函数的实现都是通过ES5标准的。使用了部分ES6API。
查找元素在数组中的位置
text
function indexOf(arr, item) {
return arr.indexOf(item)
}数组求和
text
function sum(arr) {
return arr.reduce(function(prev,next){
return prev+next
},0)
}移除数组内的指定项
text
function remove(arr, item) {
var newArr = arr.filter(function(t){
return t !== item;
})
return newArr
}
//第一种实现,借用filter方法过滤掉指定项
function remove(arr, item) {
var newArr = [];
arr.forEach(function(t){
if(t!==item){
newArr.push(t)
}
})
return newArr;
}
//正常的数组遍历方法,还有很多实现方法这里就不赘述了,大家自行发散思维统计某一项出现的次数
text
function count(arr, item) {
return arr.reduce(function (prev, cur) {
return cur === item ? prev + 1 : prev
}, 0)
}
//这个算是运用了一下reduce方法的奇淫技巧,用来统计也是棒棒哒找出数组中重复的项
text
function duplicates(arr) {
var duplicatesArr = [];
arr.forEach(function (t) {
if (arr.indexOf(t) !== arr.lastIndexOf(t) && duplicatesArr.indexOf(t) === -1) {
duplicatesArr.push(t);
}
})
return duplicatesArr;
}
//思路为如果正向查找和反向查找index不同,这个项就重复过。找出某项在数组中出现的所有位置
text
function findAllOccurrences (arr, target) {
var ret = []
arr.forEach(function (t, i) {
if (t === target) {
ret.push(i)
}
})
return ret
} 相关文章