/**
* 数组扩展方法重写
*/
Array.prototype.myforEach = function (cb) {
var _arr = this
var _len = this.length
var _th = arguments[1] || window
for (var i = 0; i < _len; i++) {
cb.apply(_th, [_arr[i], i, _arr])
}
}
Array.prototype.mymap = function (cb) {
var _arr = this
var _len = this.length
var _th = arguments[1] || window
var _newArr = []
var _item;
for (var i = 0; i < _len; i++) {
typeof _arr[i] === 'object' ? _item = deepCopy(_arr[i]) : _item = _arr[i]
_newArr.push(cb.apply(_th, [_item, i, _arr]))
}
return _newArr
}
Array.prototype.myfilter = function (cb) {
var _arr = this
var _len = this.length
var _th = arguments[1] || window
var _newArr = []
var _item;
for (var i = 0; i < _len; i++) {
typeof _arr[i] === 'object' ? _item = deepCopy(_arr[i]) : _item = _arr[i]
cb.apply(_th, [_item, i, _arr]) ? _newArr.push(_item) : ""
}
return _newArr
}
Array.prototype.myevery = function (cb) {
var _arr = this
var _len = this.length
var _th = arguments[1] || window
var _status = true
for (var i = 0; i < _len; i++) {
if (!cb.apply(_th, [_arr[i], i, _arr])) {
_status = false
break
}
}
return _status
}
Array.prototype.mysome = function (cb) {
var _arr = this
var _len = this.length
var _th = arguments[1] || window
var _status = false
for (var i = 0; i < _len; i++) {
if (cb.apply(_th, [_arr[i], i, _arr])) {
_status = true
break
}
}
return _status
}
Array.prototype.myreduce = function (cb,initvalue) {
var _arr = this
var _len = this.length
var _th = arguments[2] || window
for (var i = 0; i < _len; i++) {
initvalue= cb.apply(_th, [initvalue,_arr[i], i, _arr])
}
return initvalue
}
数组方法的重写
最新推荐文章于 2024-05-29 17:28:03 发布