You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何递归搜索所有全局变量以查找指定字符串?

搜索全局变量中嵌套的目标值并定位路径

要在浏览器全局变量里找到特定字符串(比如hello),包括嵌套在对象、数组里的属性或值,同时获取对应的完整访问路径,可以用下面的方法:

直接在浏览器控制台(按F12打开)运行这段代码:

function searchGlobalValue(target) {
  const results = [];
  // 遍历window上的所有自定义全局变量
  for (const key in window) {
    try {
      if (window.hasOwnProperty(key) && typeof window[key] !== 'function') {
        traverse(window[key], [key], results, target);
      }
    } catch (e) {
      // 跳过无权限访问的属性
      continue;
    }
  }
  return results;

  // 递归遍历对象/数组,记录路径
  function traverse(obj, path, results, target) {
    if (obj === target) {
      results.push(path.join('.'));
      return;
    }
    if (typeof obj === 'object' && obj !== null) {
      if (Array.isArray(obj)) {
        obj.forEach((item, index) => {
          traverse(item, [...path, `[${index}]`], results, target);
        });
      } else {
        for (const prop in obj) {
          if (obj.hasOwnProperty(prop)) {
            traverse(obj[prop], [...path, prop], results, target);
          }
        }
      }
    }
  }
}

// 调用示例:搜索"hello"
const matches = searchGlobalValue("hello");
console.log("匹配的路径:", matches);

说明

  • 代码会遍历window下的自定义全局变量,跳过浏览器内置函数和受保护属性,避免触发权限报错
  • 递归检查每个值,一旦找到和目标字符串完全匹配的内容,就记录它的完整访问路径
  • 如果有多个位置存在目标值,会返回所有对应的路径,比如你示例中的nacho.b[2].d

内容的提问来源于stack exchange,提问作者IMTheNachoMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:12:36