2010-12-14 13 views
7

मुझे अभी पता चला है कि Arrays सीधे जावास्क्रिप्ट में ऑब्जेक्ट से प्राप्त होता है। मुझे एक सरणी के बीच का अंतर मिल रहा है और एक वस्तु काफी कम है।जावास्क्रिप्ट में ऑब्जेक्ट या सरणी का उपयोग कब करें?

मुझे कैसे पता चलेगा कि एक दूसरे का उपयोग कब करें?

उत्तर

2

एक सरणी का उपयोग करें जब आप एक प्रकार के ऑब्जेक्ट्स का संग्रह संग्रहीत करना चाहते हैं और जो तर्कसंगत रूप से एक साथ हैं।

क्या कोई विशिष्ट चीज है जिसके बारे में आप सोच रहे थे?

Arrays उपयोगी होते हैं जब आप सभी संबंधित वस्तुओं (लूपिंग) पर काम करना चाहते हैं, इंडेक्स द्वारा क्रमबद्ध करना और सॉर्टिंग के लिए।

+0

नहीं। एक वस्तु बनाम सरणी के व्यावहारिक अनुप्रयोगों के बारे में उलझन में है। मुझे लगता है कि इस शब्द को 'उपयोग-मामलों' कहा जाता है ... कुछ शब्दकोष का उपयोग करने के लिए। –

0

जब आप अपने संबंधित आदेशों की एक श्रृंखला रखते हैं तो आप अक्सर सरणी का उपयोग करते हैं जिन्हें आप आदेशित और अनुक्रमित करना चाहते हैं।

9

जब आपको संग्रह में तत्वों के ऑर्डर पर निर्भर करने की आवश्यकता है, ऑर्डर का उपयोग करें, जब ऑर्डर महत्वपूर्ण नहीं है, ऑब्जेक्ट्स का उपयोग करें। ऑब्जेक्ट्स में ऑर्डर की गारंटी नहीं है, लेकिन वे तेज़ कुंजी-मूल्य जोड़ी लुकअप प्रदान करते हैं।

7

मैं Array [] का उपयोग करता हूं, जब मैं ऑब्जेक्ट्स की एक सूची (जैसे स्ट्रिंग्स की एक सूची) से निपट रहा हूं, तो मुझे ऑर्डर करना चाहिए और Object {} जब मैं कुछ चाहता हूं जो मैं चाहता हूं के गुण (और गुण आमतौर पर विभिन्न प्रकार के होते हैं)।

उदाहरण के लिए:

var numberNames = ["one","two","three","four"]; 

var computer = { 
    motherBoard : "mother", 
    psu : psu_object(), 
    ram : { 
      ram1 : GB, 
      ram2 : TwoGB 
    } 
}; 

* यह सिर्फ मेरी प्राथमिकता है। Arrays में कई अलग-अलग प्रकार के तत्व हो सकते हैं।

5

वे अलग-अलग data structures हैं, वे विभिन्न उद्देश्यों की सेवा करते हैं। ArrayObject बढ़ाता है और length और push() और pop() जैसी विधियां प्रदान करता है।

किसी ऑब्जेक्ट को हैश तालिका और सूची के रूप में एक सरणी के रूप में सोचें।

उदा। आप कतार के रूप में सरणी या एक ढेर के रूप में उपयोग कर सकते हैं जो वस्तुओं के साथ संभव नहीं होगा।

दूसरी तरफ यदि आप डेटा स्टोर करना चाहते हैं और सीधे एक विशिष्ट डेटाम तक पहुंचना चाहते हैं, तो आप किसी ऑब्जेक्ट का उपयोग करेंगे।

अंत में यह पर सवाल उठता है जो डेटा संरचना के लिए सही है। शायद उनमें से कोई भी नहीं है और आपको इसके बजाय एक पेड़ की आवश्यकता होगी (जिसे वस्तुओं के माध्यम से कार्यान्वित किया जा सकता है)।

3

Objects यदि आपके पास अद्वितीय कुंजी है तो एक अच्छा उम्मीदवार है।

उदाहरण Array बनाम Object:

var item = { id: '123', prop1: 456 }; 

var obj = {}, arr = []; 

// add to object 
obj[item.id] = item; 

// add to array 
arr.push(item); 

// get from object 
var got = obj[item.id]; 

// get from array 
var got; 
for(var i = 0; i < arr.length; i++) 
    if(arr[i].id == item.id){ 
     got = arr[i]; 
     break; 
    } 

आप एक वस्तु की खोज देख सकते हैं कहीं ज्यादा महंगा होता एक array (पाश) के साथ।object का उपयोग करके आपको array सहायक विधियों (सॉर्ट/पुश/आदि) तक पहुंच नहीं होगी, लेकिन आप अभी भी for...in लूप का उपयोग करके ऑब्जेक्ट्स गुणों को फिर से सक्रिय कर सकते हैं।

2

ऑब्जेक्ट्स कुंजी तार हैं; सरणी कुंजी पूर्णांक हैं। जावास्क्रिप्ट ऑब्जेक्ट्स नक्शे हैं (String -> anything) और सरणी सूचियां हैं (anything का ऑर्डर संग्रह)।

क्या इससे मदद मिलती है?

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