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.
21 lines
570 B
21 lines
570 B
"use strict"; |
|
|
|
var callable = require("./valid-callable") |
|
, isValue = require("./is-value") |
|
, forEach = require("./for-each") |
|
, call = Function.prototype.call |
|
, defaultCb = function (value, key) { return [key, value]; }; |
|
|
|
module.exports = function (obj /*, cb, thisArg, compareFn*/) { |
|
var a = [], cb = arguments[1], thisArg = arguments[2]; |
|
cb = isValue(cb) ? callable(cb) : defaultCb; |
|
|
|
forEach( |
|
obj, |
|
function (value, key, targetObj, index) { |
|
a.push(call.call(cb, thisArg, value, key, this, index)); |
|
}, |
|
obj, arguments[3] |
|
); |
|
return a; |
|
};
|
|
|