schangxiang@126.com
2025-09-19 0821aa23eabe557c0d9ef5dbe6989c68be35d1fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"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;
};