You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
680 B

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