8

私は、JSコードを追加する機能以外は制御できないWebサイトのプラグインを作成しています(実際、これは、廃止されたwysiwyg htmlエディターによって生成された一連のhtmlドキュメントです)。

私の目的では、特定の方法で名前が付けられているすべての変数を取得する必要があります。名前は常にzzz、fromからまでの数字で始まり、数字で終わりzzz1ますzzz999999。現在、私は次のことを行っています。

for (var i=1; i<999999; i++) {
    if (typeof window['zzz'+i] !== 'undefined') { 
       ArrayOfAllFoundVariables.push( window['zzz'+i] )
    }
}

何百万もの未定義を反復処理する以外に、これらの変数を検出するためのより効率的な方法があるのではないかと思います。

4

2 に答える 2

12

すべてのトップレベル変数(のプロパティwindow)を反復処理してから、それらの名前が正規表現パターンと一致するかどうかをテストできます。前と同じように一致する変数を収集します。

var pattern = /^zzz[0-9]+/;
for (var varName in window) {
    if (pattern.test(varName)) {
        ArrayOfAllFoundVariables.push(window[varName]);
    }
}
于 2013-03-24T10:10:45.953 に答える
1

ミッケは私をそれに打ち負かした:)

for (element in window) {
  if (element.substring(0,3) == 'zzz') {
    ArrayOfAllFoundVariables.push(window[element]);
  }

}

しかし、私は数の部分を逃しました:)...よくやったMikke..。

于 2013-03-24T10:20:32.823 に答える