forEach()
Array.prototype.myForEach = function (cb) {
var _arr = this
var _len = _arr.length
var _arg2 = arguments[1] || window
for (var i = 0; i < _len; i++) {
cb.apply(_arg2, [_arr[i], i, _arr])
}
}
map()
Array.prototype.myMaP = function (cb) {
var _arr = this
var _len = _arr.length
var _arg2 = arguments[1] || window
var _newArr = []
for (var i = 0; i < _len; i++) {
_newArr.push(cb.apply(_arg2, [_arr[i], i, _arr]))
}
return _newArr
}
filter()
Array.prototype.myFilter = function (cb) {
var _arr = this
var _len = _arr.length
var _arg2 = arguments[1] || window
var _newArr = []
for (var i = 0; i < _len; i++) {
cb.apply(_arg2, [_arr[i], i, _arr]) ? _newArr.push(_arr[i]) : ''
}
return _newArr
}
every()
Array.prototype.myEvery = function (cb) {
var _arr = this
var _len = _arr.length
var _arg2 = arguments[1] || window
var _res = true
for (var i = 0; i < _len; i++) {
if (!cb.apply(_arg2, [_arr[i], i, _arr])) {
_res = false
break
}
}
return _res
}
some()
Array.prototype.mySome = function (cb) {
var _arr = this
var _len = _arr.length
var _arg2 = arguments[1] || window
var _res = false
for (var i = 0; i < _len; i++) {
if (cb.apply(_arg2, [_arr[i], i, _arr])) {
_res = true
break
}
}
return _res
}
reduce()
Array.prototype.myReduce = function (cb, initialValue) {
var _arr = this
var _len = _arr.length
var res = initialValue || _arr[0]
var startIndex = initialValue ? 0 : 1
for (var i = startIndex; i < _len; i++) {
res = cb(res, _arr[i], i, _arr)
}
return res
}
reduceRight()
Array.prototype.myReduceRight = function (cb, initialValue) {
var _arr = this
var _len = _arr.length
var res = initialValue || _arr[0]
var startIndex = initialValue ? _len : _len - 1
for (var i = startIndex; i >= 0; i--) {
res = cb.call(res, _arr[i], i, _arr)
console.log(res)
}
return res
}