JavaScript में id द्वारा एक गुण को बदलना
आपको पूरी ऑब्जेक्ट नहीं, बल्कि एक विशिष्ट गुण बदलने की आवश्यकता हो सकती है। आइए देखते हैं कि यह कैसे किया जाता है।
मान लीजिए कि चर arr में
ऑब्जेक्ट्स की एक array है:
javascriptlet arr = [
{
id: 'GYi9GauC4gBF1e2SixDvu',
prop1: 'value11',
prop2: 'value12',
prop3: 'value13',
},
{
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21',
prop2: 'value22',
prop3: 'value23',
},
{
id: 'JAmjRlfQT8rLTm5tG2m1L',
prop1: 'value31',
prop2: 'value32',
prop3: 'value33',
},
];
मान लीजिए कि चर में element का id,
बदलने के लिए गुण का नाम और गुण का नया मान
संग्रहीत है:
javascriptlet id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
समस्या को हल करने के लिए डिस्ट्रक्चरिंग और कम्प्यूटेड प्रॉपर्टी नाम का उपयोग करना सुविधाजनक है:
javascriptlet res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
निम्नलिखित चर दिए गए हैं:
javascriptlet id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
एक बटन बनाएं, जिस पर क्लिक करने पर
दिए गए id वाला array element लिया जाएगा,
उसमें दिए गए नाम वाला गुण लिया जाएगा और उस गुण के मान के
अंत में चिह्न '!' जोड़ा जाएगा।
मान लीजिए कि गुणों के नामों के साथ दो चर दिए गए हैं:
javascriptlet id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
पिछले कार्य को इस तरह संशोधित करें कि क्लिक करने पर परिवर्तन तुरंत दोनों निर्दिष्ट गुणों के लिए किए जाएं।
सिद्धांत में दिए गए समाधान को
Object.assign का उपयोग करके ऑब्जेक्ट की कॉपी बनाकर दोबारा लिखें।