2011-05-09 12 views
6

यह पैटर्न काफी आम है;जावास्क्रिप्ट सरणी को निष्क्रिय करने के लिए स्ट्रिंग को विभाजित करने के क्या फायदे हैं?

var arr = "word1 word2 word3".split(" "); 

सरणी initiliasation के 'सामान्य' के तरीकों के लिए एक विकल्प के रूप में:

var arr1 = [ "word1", "word2", "word3" ]; 

var arr2 = new Array("word1", "word2", "word3"); 

क्या string- के क्या लाभ हैं मैं jQuery स्रोत कोड सहित कुछ स्थानों में यह देखा है विभाजन दृष्टिकोण?

+0

क्षमा करें अगर यह पहले ही पूछा जा चुका है, लेकिन मुझे इसे किसी भी 'संबंधित उत्तरों' में नहीं मिला। Google के माध्यम से खोजना भी एक मुश्किल बात है - ठीक है, यह * मुझे * के लिए था ... –

+0

सिर्फ इसलिए कि jQuery इसका उपयोग करता है इसका मतलब यह नहीं है कि यह करने का यह सबसे शानदार तरीका है। यह अभी भी व्यक्तिगत लोगों द्वारा योगदान दिया गया है और सभी कोड वास्तव में प्रतिबद्धता से पहले कुलीन विशेषज्ञों द्वारा समीक्षा की गई कोड नहीं है ... – jishi

उत्तर

3

From John Resig (creator of jQuery):

"केवल लाभ मैं देख चरित्र स्रोत में गिनती और एक स्ट्रिंग बल्कि कई की तुलना में है।" बिंगो!

अब मुझे लगता है कि, मुझे लगता है कि क्लोजर इस बिंदु को अनुकूलित कर सकता है ( सोचें YUIMIN ने नहीं किया)। मैं इसे फिर से में देख सकता हूं।

इसके अलावा, Google JavaScript Style Guidenew Array() परहेज क्योंकि सिफारिश की गई है "सरणी कंस्ट्रक्टर्स उनके तर्कों की वजह से त्रुटि प्रवण रहे हैं।" गाइड में एक और गहन स्पष्टीकरण है।

+0

उत्कृष्ट - संदर्भ को ट्रैक करने के लिए धन्यवाद –

3

पहला छोटा है। जेएस में इन दिनों libs एक मुद्दा है। लिखना भी आसान है: कम , और '। गलत टाइप करना भी मुश्किल है।

+0

अच्छा बिंदु। हालांकि, '[...]' तेज नहीं है? मैंने सोचा होगा कि lib डिजाइन में भी एक कारक था। अनुमोदित, ज्यादा नहीं, लेकिन उदाहरण में मैं देख रहा हूं, केवल 4 बाइट्स स्पेस-वार की बचत है। –

+0

यदि यह केवल कुछ तत्व हैं, तो जीत छोटी (या विरोधी) है। जेएस कंप्रेसर में, सूची आमतौर पर 50+ तत्व होती है। प्राप्त की गई गति डाउनलोड करने में है, स्क्रिप्ट को इसे उपयोगी बनाने के लिए नहीं, (मुझे मत पूछो, मुझे यह क्यों नहीं मिलता है)। मुझे लगता है कि बहुत से लोग सोचते हैं कि क्या आपका एलएस लिब छोटा है, यह अच्छा है। (बीटीडब्ल्यू मुझे लगता है कि आप सही हैं: '[...] 'तेज़ है) – Rudie

+0

इसके अलावा, और भी हो सकता है ... शायद यह वास्तव में तेज़ (??) या कम त्रुटि प्रवण (??) है। – Rudie

संबंधित मुद्दे

 संबंधित मुद्दे