heyujie
2021-06-07 8f8155aa4c83f7c2577ac123add550766b6a7ce3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
"use strict";
 
var callable = require("./valid-callable")
  , forEach  = require("./for-each")
  , call     = Function.prototype.call;
 
module.exports = function (obj, cb/*, thisArg*/) {
    var result = {}, thisArg = arguments[2];
    callable(cb);
    forEach(obj, function (value, key, targetObj, index) {
        if (call.call(cb, thisArg, value, key, targetObj, index)) result[key] = targetObj[key];
    });
    return result;
};