forEach
Array.prototype.myForEach = function (func) {
var _arr = this, _len = _arr.length, _this = arguments[1] || window;
for (var i = 0; i < _len; i++) {
func.apply(_this, [_arr[i], i, _arr]);
}
}
map
Array.prototype.myMap = function (func) {
var _arr = this, _len = _arr.length, _this = arguments[1] || window;
var _newArr = [];
for (var i = 0; i < _len; i++) {
var tempRes = func.apply(_this, [_arr[i], i, _arr]);
_newArr.push(tempRes)
}
return _newArr;
}
filter
Array.prototype.myFilter = function (func) {
var _arr = this, _len = _arr.length, _this = arguments[1] || window;
var _newArr = [];
for (var i = 0; i < _len; i++) {
var boolean = func.apply(_this, [_arr[i], i, _arr]);
boolean ? _newArr.push(_arr[i]) : '';
}
return _newArr;
}
every
Array.prototype.myEvery = function (func) {
var _arr = this, _len = _arr.length, _this = arguments[1] || window;
for (var i = 0; i < _len; i++) {
var boolean = func.apply(_this, [_arr[i], i, _arr]);
if (!boolean) {
return false;
}
}
return true;
}
some
Array.prototype.mySome = function (func) {
var _arr = this, _len = _arr.length, _this = arguments[1] || window;
for (var i = 0; i < _len; i++) {
var boolean = func.apply(_this, [_arr[i], i, _arr]);
if (boolean) {
return true;
}
}
return false;
}
reduce
Array.prototype.myReduce = function (func) {
var _arr = this, _len = _arr.length, i = 0; initValue = arguments[1] || _arr[0];
arguments[1] ? "" : i = 1;
for (; i < _len; i++) {
initValue = func.apply(window, [initValue, _arr[i], i, _arr])
}
return initValue;
}