2013-03-24 4 views
5

से शुरू होने वाले सभी जेएस वेरिएबल प्राप्त करें, मैं उस वेबसाइट के लिए एक प्लगइन लिख रहा हूं जिस पर मेरा कोई नियंत्रण नहीं है, इसके अलावा जेएस कोड जोड़ने की मेरी क्षमता को छोड़कर (वास्तव में यह एक अप्रचलित द्वारा उत्पन्न एचटीएमएल दस्तावेज़ों का एक सेट है wysiwyg एचटीएमएल संपादक)।एक निश्चित स्ट्रिंग

मेरे उद्देश्यों के लिए, मुझे एक निश्चित तरीके से नामित सभी चर प्राप्त करने की आवश्यकता है। नाम हमेशा zzz से शुरू होता है और zzz1 से zzz999999 तक किसी संख्या के साथ समाप्त होता है। अभी मैं कर रहा हूँ निम्नलिखित:

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

मुझे आश्चर्य है कि इन undefineds की एक लाख के माध्यम से पुनरावृत्ति के अलावा अन्य चर का पता लगाने के लिए एक अधिक कुशल तरीका है अगर।

उत्तर

7

आप सभी शीर्ष स्तरीय चर (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 ...

से चूक गए
संबंधित मुद्दे