मैं यह करने के लिए एक कुशल तरीका खोजने के लिए एक छोटी सी कोशिश कर रहा हूँ, लेकिन कहीं नहीं मिला है। मेरे पास वस्तुओं का एक समूह है जो इस तरह दिखता है:
array[i].id = some number;
array[i].name = some name;
मैं क्या करना चाहता हूँ वस्तुओं के सूचकांक को खोजने के लिए जहां आईडी के बराबर है, उदाहरण के लिए, 0,1,2,3 में से एक या 4. मुझे लगता है कि मैं कुछ ऐसा कर सकता था:
var indexes = [];
for(i=0; i<array.length; i++) {
(array[i].id === 0) ? { indexes[0] = i }
(array[i].id === 1) ? { indexes[1] = i }
(array[i].id === 2) ? { indexes[2] = i }
(array[i].id === 3) ? { indexes[3] = i }
(array[i].id === 4) ? { indexes[4] = i }
}
हालांकि यह काम करेगा, यह काफी महंगा और धीमा लग रहा है (बदसूरत का उल्लेख नहीं करना), खासकर अगर array.length बड़ी हो सकती है। कैसे थोड़ा इसे सजाना पर कोई विचार? मैंने किसी तरह array.indexOf का उपयोग करने के बारे में सोचा, लेकिन मैं यह नहीं देखता कि वाक्य रचना को कैसे मजबूर किया जाए। यह
array.indexOf(this.id === 0);
उदाहरण के लिए, अपरिभाषित रिटर्न, जैसा कि शायद यह होना चाहिए। अग्रिम में धन्यवाद!
Array.prototype.findIndex()
ECMAScript 2015 में एक नई सरणी विधि है। स्वीकृत उत्तर भयानक था।