如何获取键包含下划线中的对象?

时间:2016-09-16 20:29:54

标签: javascript node.js underscore.js

我需要在key中找到包含对象的a。它不应该返回包含数组或字符串的键。例如,在a中,它应该返回d但不是bc

a = {"b" : "hi","c":[1,2,3],"d":{"2:":3}};

这是我试过的剪辑。它返回我的第一个Object实例。但我不需要Array实例只是一个字典。

var _ = require(underscore);    
_.findKey(a,_.isObject);

2 个答案:

答案 0 :(得分:2)

您可以使用常规JS:

var keysThatContainObjects = Object.keys(a).filter(function(k) {
    return typeof a[k] === "object" && !Array.isArray(a[k]);
}); //["d"]

1行

var keysThatContainObjects = Object.keys(a).filter(function(k) { return typeof a[k] === "object" && !Array.isArray(a[k]); }); //["d"]

答案 1 :(得分:0)

我非常干净的方法是使用underscore

中的pick
var a = {"b" : "hi","c":[1,2,3],"d":{"2:":3}};
var aFiltered = _.pick(a, function() {
  return _.isObject(value);
});