add Array.prototype.every and Array.prototype.some
This commit is contained in:
parent
223323ac82
commit
aebd6aacff
1 changed files with 40 additions and 0 deletions
|
@ -1,5 +1,25 @@
|
|||
'use strict';
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every
|
||||
if (!Array.prototype.every) {
|
||||
Array.prototype.every = function(fn, that) {
|
||||
if (this === void 0 || this === null || typeof fn !== 'function') {
|
||||
throw new TypeError();
|
||||
}
|
||||
var arr = Object(this),
|
||||
i,
|
||||
len = arr.length >>> 0,
|
||||
ret = true;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i in arr && !fn.call(that, arr[i], i, arr)) {
|
||||
ret = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter) {
|
||||
Array.prototype.filter = function(fn, that) {
|
||||
|
@ -97,6 +117,26 @@ if (!Array.prototype.map) {
|
|||
};
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
|
||||
if (!Array.prototype.some) {
|
||||
Array.prototype.some = function(fn, that) {
|
||||
if (this === void 0 || this === null || typeof fn !== 'function') {
|
||||
throw new TypeError();
|
||||
}
|
||||
var arr = Object(this),
|
||||
i,
|
||||
len = arr.length >>> 0,
|
||||
ret = false;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i in arr && fn.call(that, arr[i], i, arr)) {
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce
|
||||
if (!Array.prototype.reduce) {
|
||||
Array.prototype.reduce = function(fn, ret) {
|
||||
|
|
Loading…
Reference in a new issue