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}
我经常使用大型 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}