Chrome Dev Tools 中的 JavaScript 对象中的关键字有没有办法 "grep"?

Is there a way to "grep" for a keyword in a JavaScript object in Chrome Dev Tools?

我经常使用大型 JavaScript 对象,而不是手动打开和关闭 "branches",我想简单地搜索一个特定的字符串并显示任何匹配的键或值。

有点像 "grepping" 对象中的关键字 JavaScript。这可能吗(尤其是在 Chrome 开发工具中)?

不幸的是,我希望我至少可以尝试 JSON.stringify() 技巧,然后在文本编辑器中搜索原始 JSON,但我收到以下错误:

Uncaught TypeError: Converting circular structure to JSON

您可以查看对象的键并与它们进行匹配:

function grepKeys(o, query){
    var ret = {};
    Object.keys(o).filter(function(key){
       return key.includes(query);
    }).forEach(function(key){ // can reduce instead
       ret[key] = o[key]; // copy over
    });
    return ret;
}

这会让您 return 一个部分对象,其中包含您指定的字符串的所有键。请注意,这不会显示任何原型密钥,但可以轻松扩展以允许它(通过使用 for... in 而不是 Object.keys 或使用递归):

 var o = grepKeys({buzz:5, fuzz:3, foo:4}, "zz");
 o; // Object {buzz: 5, fuzz: 3}