2012-02-12 24 views
9

जब भी मैं सरणियों के साथ काम करते हैं, मैं हमेशा [] शैली का उपयोग, तथापि, जब मैं तत्वों मैं new Array(N) का उपयोग की एक निश्चित राशि के साथ एक सरणी बनाना चाहते हैं (मैं ऐसा करने का कोई अन्य तरीका पता नहीं है)पुराने 'नए ऐरे (एन)' के बिना तत्वों की संख्या के साथ सरणी बनाने का सही तरीका?

मैंने सोचा कि यह, बड़ी बात नहीं थी जब तक मैं इस बारे में इन मजबूत शब्दों को पढ़ने:

किसी को भी यह कर, 'नई सरणी() "" [] "के बजाय का उपयोग कर, या" नया वस्तु() " "{}" की बजाय जावास्क्रिप्ट को रिलीज़ करने की आवश्यकता है।

मैं वास्तव में बुरी कोड लिखने से बचना चाहता हूं। कोई भी मन मुझे जाने के लिए सही दिशा बताता है?

+2

मुझे वास्तव में लगता है कि आप पहले से ही ठीक हैं। जब आप एक विशिष्ट आकार चाहते हैं तो आप '[]' वाक्यविन्यास का उपयोग कर रहे हैं जब आप अधिकतर समय सरणी आवंटित करते हैं, और 'नया ऐरे (एन)'। वहां कुछ भी गलत नहीं है, आपके द्वारा पोस्ट किया गया उद्धरण सभी स्थितियों के लिए जिम्मेदार नहीं है। –

+0

@ माइकल जानना अच्छा है !, मुझे लगता है कि अब मैं रोशनी से सो सकता हूं :) – mithril333221

+1

मुझे इस तरह से 'ऐरे' कन्स्ट्रक्टर का उपयोग करने में कुछ भी गलत नहीं लगता है। यह एक अच्छे कारण के लिए मौजूद है। –

उत्तर

5

मैं 2006 में किसी ब्लॉग पर कुछ यादृच्छिक टिप्पणी के बारे में ज्यादा चिंता नहीं करता। खासकर जब आपका उपयोग केस new Array() नहीं है। आप विशेष-मामले कन्स्ट्रक्टर का उपयोग कर रहे हैं जो विशेष रूप से इस उद्देश्य के लिए प्रदान किया जाता है।

इसके अलावा, के बजाय new Array() का उपयोग करना शायद ही सबसे खराब चीज जेएस के साथ कर सकती है।

+1

आप शायद सही हैं, मुझे 6 साल पुरानी पोस्ट – mithril333221

+0

की वजह से भ्रूण की स्थिति में रोशनी बंद करनी चाहिए और नोट करें कि यह उस उद्धरण को आवश्यक नहीं है _wrong_ - बस हमें हाइपरबोले को पहचानने में सक्षम होना चाहिए जब हम इसे देखते हैं। –

1
function repeat(str, len){ 
    str= str || ''; 
    len= len || 1; 
    return Array(len+1).join(str); 
} 

repeat('*',25) 

// returned value: (String) 
+0

यह एक बुरी आदत है। आम तौर पर, 'नया' कीवर्ड छोड़ना खतरनाक और गलत है। ऐसा होता है कि 'ऐरे' कन्स्ट्रक्टर अच्छी तरह से व्यवहार करता है और आंतरिक रूप से 'नए' कीवर्ड के साथ कन्स्ट्रक्टर को फिर से कॉल करके आपकी गलती को सुधारता है। –

+0

मैं इस बात से सहमत नहीं हूं कि यह एक बुरी आदत है। नए बनाम वर्ग कारखानों पर जाकर कुछ समय हो सकता है जब वे जावास्क्रिप्ट में उपयोग कर रहे हों, लेकिन यह शायद ही कभी एक dogmatic अभ्यास की मांग करता है (हमेशा नए का उपयोग करें! या हमेशा कारखानों का उपयोग करें!) क्योंकि आप एक बार में एक बार मान सकते हैं समारोह एक कारखाना है जब यह नहीं है। सतह और सही करना आसान है। वास्तविक वाक्य में सबसे वाक्यविन्यास स्पष्टता प्रदान करता है जो वाक्यविन्यास द्वारा जाएं। 'प्वाइंट (एक्स, वाई) 'और JQuery'' '' कारखानों के रूप में समझ में आता है, और 'नया' शायद कभी भी लगातार और लगातार बनाए गए किसी भी चीज़ के लिए, 'नया स्प्राइट (राक्षस ["ड्रैगन"]) – Plynx

0

मैं इस सवाल का पता बहुत पुराना है, लेकिन यहाँ मैं कैसे नई सरणी (आकार) के लिए एक विकल्प के रूप में यह कोड होता है, जावास्क्रिप्ट का शाब्दिक सिंटैक्स का उपयोग है।

var arr = []; 
arr.length = size; 
संबंधित मुद्दे