जबकि अधिकांश मौजूदा उत्तर महान हैं, मैं पाश के लिए एक पारंपरिक का उपयोग करके एक उत्तर शामिल करना चाहूंगा, जिसे यहां भी माना जाना चाहिए। ओपी एक जवाब का अनुरोध करता है जो ES5 / ES6 संगत है, और लूप के लिए पारंपरिक लागू होता है :)
इस परिदृश्य में सरणी फ़ंक्शंस का उपयोग करने में समस्या यह है कि वे ऑब्जेक्ट्स को म्यूट नहीं करते हैं, लेकिन इस मामले में, म्यूटेशन एक आवश्यकता है। लूप के लिए एक पारंपरिक का उपयोग करने का प्रदर्शन लाभ केवल (विशाल) बोनस है।
const findThis = 2;
const items = [{id:1, ...}, {id:2, ...}, {id:3, ...}];
for (let i = 0, l = items.length; i < l; ++i) {
if (items[i].id === findThis) {
items[i].iAmChanged = true;
break;
}
}
हालांकि मैं सरणी कार्यों का बहुत बड़ा प्रशंसक हूं, लेकिन उन्हें अपने टूलबॉक्स में एकमात्र उपकरण न बनने दें। यदि उद्देश्य सरणी को बदल रहा है, तो वे सबसे उपयुक्त नहीं हैं।
itemमें एकidकुंजी है? या क्या आपको लगता है कि आईडी के साथ हीitemऐरन एंट्री में ऑब्जेक्ट के सभी गुण हैं ?