gpt4 book ai didi

google-chrome - 有没有办法在 Chrome DevTools 中搜索控制台记录的对象以获取特定值?

转载 作者:行者123 更新时间:2023-12-03 11:41:48 26 4
gpt4 key购买 nike

我想 console.log() 一个对象并在该对象中搜索特定值。这可能吗?

注意:我要搜索的对象是庞大的多维对象,因此扩展每个字段并执行简单的 Ctrl+F 查找并不理想。

最佳答案

下面的代码向控制台对象添加了类似于您正在寻找的内容
console.logSearchingForValue
广度优先搜索、匹配等效的“JSON”值、正确处理 NaN、返回多个位置以及使数字索引表达式不被引用都留给读者作为练习。 :)

交换平等的不同定义已经很容易了。

var searchHaystack = function(haystack, needle, path, equalityFn, visited) {

if(typeof haystack != "object") {
console.warn("non-object haystack at " + path.join("."));
}

if(visited.has(haystack))
return [false, null];

for(var key in haystack) {
if(!haystack.hasOwnProperty(key))
continue;

if(equalityFn(needle, haystack[key])) {
path.push(key);
return [true, path];
}

visited.add(haystack);
if(typeof haystack[key] == "object") {
var pCopy = path.slice();
pCopy.push(key);
var deeper = searchHaystack(haystack[key], needle, pCopy, equalityFn, visited);
if(deeper[0]) {
return deeper;
}
}
}
return [false, null];
}

var pathToIndexExpression = function(path) {
var prefix = path[0];
path = path.slice(1);
for(var i = 0; i < path.length; i++) {
if(typeof path[i] == "string")
path[i] = "\"" + path[i] + "\"";
}
return prefix + "[" + path.join("][") + "]"
}

console.logSearchingForValue = function(haystack, needle) {
this.log("Searching");
this.log(haystack);
this.log("for");
this.log(needle);
var visited = new Set();
var strictEquals = function(a,b) { return a === b; };
var result = searchHaystack(haystack, needle, ["<haystack>"], strictEquals, visited);
if(result[0]) {
this.log("Found it!");
this.log(pathToIndexExpression(result[1]));
}
else {
this.log("didn't find it");
}
}

关于google-chrome - 有没有办法在 Chrome DevTools 中搜索控制台记录的对象以获取特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17326939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com