注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
用法为:array.map(function(currentValue,index,arr), thisValue)
实现:
Array.prototype.selfMap = function(fn,thisArg){
let result=[];
console.log(this)
for(let i=0;i{
return ++item;
}))//[2,3,4,5]
或reduce实现:
Array.prototype.reduceMap = function(fn,thisArg){
return this.reduce((acc,currentValue,currentIndex)=>{
return acc.concat(fn.call(thisArg,currentValue,currentIndex))
},[])
}
console.log([1,2,3,4].reduceMap((item,i)=>{
return ++item;
}))//[2,3,4,5]
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
用法为 array.filter(function(currentValue,index,arr), thisValue)
实现:
Array.prototype.selfFilter = function(fn,thisValue){
var result = [];
for(var i = 0;i18}))//[32,33,40]
注意: reduce() 对于空数组是不会执行回调函数的。
用法为array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
实现:
Array.prototype.selfReduce = function(fn,result){
for(var i=0;i