दिलचस्प पोस्ट
Web.xml में applicationContext.xml फाइल के बजाय स्प्रिंग @ कॉन्फ़िगरेशन एनोटेटेड क्लास को कैसे रजिस्टर करें? क्या चिंताओं को अलग करना है? आर में पासवर्ड-सुरक्षित वेबसाइट परिमार्जन करें कॉरस – प्रीफलाइट अनुरोधों को पेश करने के पीछे प्रेरणा क्या है? Json.net का उपयोग करके गतिशील ऑब्जेक्ट में जेसन ऑब्जेक्ट को डीसरियल बनाना अपलोड करने से पहले एक छवि का आकार बदलने के लिए HTML5 का उपयोग करें Linux scheduler समय टुकड़ा कैसे पता है? नोडजेएस MySQL डंप क्लोज़र में फास्ट प्राइम नंबर पीढ़ी कैसे एक स्तंभ में सरणी या एकाधिक मूल्यों को संग्रहित करें कास्टिंग और कोर्सिंग के बीच अंतर क्या है? Enum विशेषता से enum प्राप्त करें एकल फ़ाइलों के लिए झंडे संकलित करें ओवरराइड करें जो माइम प्रकार मेरे प्रोग्राम के लिए विशिष्ट है एक बाइनरी फ़ाइल के लिए उपयोग करने के लिए? सरणी तत्वों की पुनर्क्रमित

क्या कोई कारण जावास्क्रिप्ट डेवलपर्स Array.push () का उपयोग नहीं करते हैं?

मैं सामान्यतः डेवलपर्स को अभिव्यक्ति का उपयोग करते हैं जैसे जावास्क्रिप्ट में निम्नलिखित हैं:

arr = [] arr[arr.length] = "Something" arr[arr.length] = "Another thing" 

push नहीं होगा और अधिक उपयुक्त?

 arr = [] arr.push("Something") arr.push("Another thing") 

Solutions Collecting From Web of "क्या कोई कारण जावास्क्रिप्ट डेवलपर्स Array.push () का उपयोग नहीं करते हैं?"

वास्तव में मैंने अपने आप को इस वर्ष की शुरुआत में एक ही सवाल पूछा नए परीक्षण मामलों के साथ अद्यतन http://jsperf.com/array-push-vs-unshift-vs-direct-assignment/2

ऐसा प्रतीत होता है कि क्रोम में push बहुत तेज है, और एफएफ के बराबर है। साथ ही आईई 9 में भी तेज़ हो सकता है, लेकिन मुझे यह देखने में दिलचस्पी होगी कि यह आईई 10 में कैसे काम करता है।

मैं कहूंगा कि अधिकांश डेवलपर्स सरणी की लंबाई निर्धारित करने के लिए मान लेते हैं, और फिर प्रत्यक्ष कार्य का उपयोग तेजी से होता है, जैसा कि अधिकांश प्रोग्रामिंग भाषाओं के साथ होता है लेकिन जावास्क्रिप्ट अलग है। जावास्क्रिप्ट सरणियां वास्तव में सरणी नहीं हैं , वे सिर्फ अन्य सभी जावास्क्रिप्ट ऑब्जेक्ट्स की तरह कुंजी / मान नक्शे हैं। इसलिए पूर्व आवंटन अनिवार्य रूप से बहरे कानों पर पड़ रहा है।

निजी तौर पर मुझे push पसंद है (:

यह प्रदर्शन के बारे में है – लेकिन यह वास्तव में मायने नहीं रखता है कि मुझे लगता है http://www.scottlogic.co.uk/2010/10/javascript-array-performance/

मुझे विश्वास है कि यह ज्यादातर आदत है

कुछ डेवलपर्स इसका इस्तेमाल केवल इसलिए करते हैं क्योंकि यह ऐसा करने के लिए किया जाता है, और यह नहीं माना जाता है कि push एक विकल्प होगा।

कुछ डेवलपर्स ने एक बार एक बार सीखा है कि एक विधि एक से दूसरे की तुलना में ज्यादा तेज है, और इसने जावास्क्रिप्ट इंजन के हालिया प्रदर्शन में सुधार के बारे में इसकी समीक्षा नहीं की है।

निजी तौर पर मैं अक्सर push उपयोग करता हूं अधिकांश समय पठनीयता और रखरखाव प्रदर्शन से अधिक महत्वपूर्ण है, कम से कम जब प्रदर्शन प्रभाव काफी छोटा होता है यहां दिए गए उत्तर में पोस्ट किए गए प्रदर्शन परीक्षण दिखाते हैं कि विभिन्न तरीकों के बीच प्रदर्शन अंतर बहुत बड़ा नहीं है।

यह नेस्टेड ब्रैक्लस को सीमित करने का एक तरीका है। यदि आपके पास पर्याप्त है तो आप नहीं देख सकते कि कैसे हैं या आप कितने हैं (जब बाद में कोड देखें)। मैं एक var का उपयोग करेगा, केवल एक बार चीजों को एक बार गिना जाना चाहिए

 bar = foo.length; foo[ bar++ ] = "new item 0"; foo[ bar++ ] = "new item 1"; foo[ bar++ ] = "new item 2"; foo[ bar++ ] = "new item 3"; 

http://jsfiddle.net/vEUU3/

बहुत बार जब मैं किसी ऑब्जेक्ट को एक सरणी में धकेल रहा हूं, तो मुझे उस ऑब्जेक्ट का संदर्भ मुझे लौटा देना है। उदाहरण के लिए:

 // Returns object function createAndAdd(arr) { return arr[arr.length] = { id: 1 }; } var obj = createAndAdd(arr); 

अब मेरे पास नया ऑब्जेक्ट है और मैंने इसे एक सरणी में जोड़ा है। अगर मैं पुश का इस्तेमाल करता हूं तो मुझे सरणी की लंबाई वापस करनी पड़ती। यह निम्नलिखित की तरह दिखेगा:

 function createAndAdd(arr) { var obj = { id: 1 }; arr.push(obj); return obj; } 

या यहां तक ​​कि कुटिलता, खासकर यदि वस्तु बड़ा हो जाती है:

 function createAndAdd(arr) { return arr[arr.push({ id: 1 }) -1]; } 

निजी तौर पर, मैं तत्काल वापसी बयानों के साथ कार्य करता हूं I इसे सरल और आसान दिखता है सवाल प्यार यह पूछने के लिए धन्यवाद

Array.prototype.push विधि अद्यतन सरणी की लंबाई देता है, जबकि सीधे घोषणा को असाइन किया जा रहा है मान देता है। यह एकमात्र अंतर है जो मैं देख रहा हूं, लेकिन मैं आमतौर पर पुश पद्धति के बारे में कुछ सर्वोत्तम प्रथाओं की सिफारिशों को पढ़ता हूं जो कि एक सरणी के लिए नए मान प्रदान करने का बेहतर तरीका है।

मुझे लगता है कि यह प्रदर्शन के बारे में नहीं है, या कम से कम ऐसा कोई बड़ा सौदा नहीं है … जो वास्तव में यहां मायने रखता है वह घोषणात्मक तरीके से ज़रूरी तरीका है।