मेरे पास संभवतः हजारों वस्तुओं वाला एक मॉडल है। मैं सोच रहा था कि मेरे पास एक आईडी होने के बाद उन्हें संग्रहीत करने और किसी एक ऑब्जेक्ट को प्राप्त करने का सबसे कुशल तरीका क्या होगा। आईडी की संख्या लंबी होती है।
तो ये 2 विकल्प हैं जिनके बारे में मैं सोच रहा था। एक विकल्प में यह एक वृद्धि सूचकांक के साथ एक सरल सरणी है। विकल्प 2 में यह एक साहचर्य सरणी और शायद एक वस्तु है, अगर इससे कोई फर्क पड़ता है। मेरा प्रश्न यह है कि कौन सा अधिक कुशल है, जब मुझे ज्यादातर एक ही वस्तु को प्राप्त करने की आवश्यकता होती है, लेकिन कभी-कभी उनके माध्यम से लूप और सॉर्ट भी किया जाता है।
गैर साहचर्य सरणी के साथ विकल्प एक:
var a = [{id: 29938, name: 'name1'},
{id: 32994, name: 'name1'}];
function getObject(id) {
for (var i=0; i < a.length; i++) {
if (a[i].id == id)
return a[i];
}
}
साहचर्य सरणी के साथ विकल्प दो:
var a = []; // maybe {} makes a difference?
a[29938] = {id: 29938, name: 'name1'};
a[32994] = {id: 32994, name: 'name1'};
function getObject(id) {
return a[id];
}
अपडेट करें:
ठीक है, मुझे लगता है कि दूसरे विकल्प में एक सरणी का उपयोग करना सवाल से बाहर है। तो घोषणा लाइन दूसरा विकल्प वास्तव में होना चाहिए: var a = {};और एकमात्र सवाल यह है: किसी दिए गए आईडी के साथ किसी वस्तु को प्राप्त करने में बेहतर प्रदर्शन क्या है: एक सरणी या एक वस्तु जहां आईडी कुंजी है।
और भी, क्या उत्तर बदल जाएगा यदि मुझे सूची को कई बार क्रमबद्ध करना होगा?

