1234567891011121314151617181920212223 |
- "use strict";
- var isPlainArray = require("../../is-plain-array")
- , callable = require("../../../object/valid-callable")
- , isArray = Array.isArray
- , filter = Array.prototype.filter
- , forEach = Array.prototype.forEach
- , call = Function.prototype.call;
- module.exports = function (callbackFn /*, thisArg*/) {
- var result, thisArg, i;
- if (!this || !isArray(this) || isPlainArray(this)) {
- return filter.apply(this, arguments);
- }
- callable(callbackFn);
- thisArg = arguments[1];
- result = new this.constructor();
- i = 0;
- forEach.call(this, function (val, j, self) {
- if (call.call(callbackFn, thisArg, val, j, self)) result[i++] = val;
- });
- return result;
- };
|