我经常使用大型JavaScript对象,而不是手动打开和关闭" branches",我想简单地搜索特定字符串并显示匹配的任何键或值。
类似" grepping"对于JavaScript对象中的关键字。这可能吗(特别是在Chrome Dev Tool中)?
不幸的是我希望我至少可以尝试JSON.stringify()
技巧,然后在文本编辑器中搜索原始JSON,但是我收到以下错误:
Uncaught TypeError: Converting circular structure to JSON
答案 0 :(得分:1)
您可以查看对象的键并与之匹配:
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;
}
允许您返回包含所有包含指定字符串的键的部分对象。请注意,这不会显示任何原型键,但可以轻松扩展以允许它(通过使用for... in
而不是Object.keys或使用递归):
var o = grepKeys({buzz:5, fuzz:3, foo:4}, "zz");
o; // Object {buzz: 5, fuzz: 3}