मान लीजिए, हमारे पास दो ऑब्जेक्ट्स हैं जैसे ये -
const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 };हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसे दो ऑब्जेक्ट लेता है।
फ़ंक्शन को समान प्रॉपर्टीज़ के मानों को एक सिंगल प्रॉपर्टी में जोड़ना चाहिए। इसलिए, अंतिम ऑब्जेक्ट कुछ इस तरह दिखना चाहिए -
const output = { a:14, b:12, c:18 };नोट - सरलता के लिए हमने केवल दो ऑब्जेक्ट्स का उपयोग किया है, लेकिन हमें अपना फ़ंक्शन इस तरह लिखना है कि यह किसी भी संख्या में ऑब्जेक्ट्स ले सके और उनकी प्रॉपर्टी वैल्यूज़ को जोड़ सके।
उदाहरण
const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 }; const sumObjectsByKey = (...objs) => { const res = objs.reduce((a, b) => { for (let k in b) { if (b.hasOwnProperty(k)) a[k] = (a[k] || 0) + b[k]; } return a; }, {}); return res; } console.log(sumObjectsByKey(obj1, obj2));आउटपुट
कंसोल में आउटपुट होगा -
{ a: 14, b: 12, c: 18 }