获取以特定字符串开头的所有JS变量

8
我正在为一个我无法控制的网站编写插件,除了能够添加JS代码之外,我没有其他控制权(事实上,它是由一个过时的所见即所得HTML编辑器生成的一组HTML文档)。
为了达到我的目的,我需要获取以特定方式命名的所有变量。名称始终以zzz开头,并以数字结尾,从zzz1zzz999999。现在我正在执行以下操作:
for (var i=1; i<999999; i++) {
    if (typeof window['zzz'+i] !== 'undefined') { 
       ArrayOfAllFoundVariables.push( window['zzz'+i] )
    }
}

我想知道除了遍历一百万个未定义的变量之外,是否有更有效的方法来检测这些变量。

2个回答

12
你可以迭代所有顶级变量(window的属性),然后测试它们的名称是否与某个正则表达式模式匹配。像以前一样收集匹配的变量。
var pattern = /^zzz[0-9]+/;
for (var varName in window) {
    if (pattern.test(varName)) {
        ArrayOfAllFoundVariables.push(window[varName]);
    }
}

1
"Mikke比我先完成了它 :)"
for (element in window) {
  if (element.substring(0,3) == 'zzz') {
    ArrayOfAllFoundVariables.push(window[element]);
  }

}

但我错过了数字部分 :) ... 干得好 Mikke ...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接