mirror of https://gitee.com/bigwinds/arangodb
22 lines
648 B
JavaScript
22 lines
648 B
JavaScript
'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;
|
|
};
|