हमारे पास एक parentArray है जिसमें कई उप-सरणियाँ हैं, प्रत्येक का आकार समान है, प्रत्येक उप-सरणी दो प्रॉपर्टी वाले ऑब्जेक्ट्स की सरणी है: key और value। एक उप-सरणी के भीतर दो ऑब्जेक्ट्स की समान key नहीं हो सकती लेकिन सभी उप-सरणियों में समान n कुंजियों के जोड़े होते हैं जहां n उप-सरणी का आकार है।
हमारा काम key को ऑब्जेक्ट्स की key और value को उस विशेष key के लिए सभी मानों वाली सरणी के साथ एक ऑब्जेक्ट तैयार करना है।
यहां एक नमूना parent array है:
const parentArray = [[
{ key: 123, value: 'India' },
{ key: 124, value: 'USA' },
{ key: 125, value: 'Japan' },
{ key: 126, value: 'Denmark' },
{ key: 127, value: 'Austria' },
], [
{ key: 124, value: 'Kenya' },
{ key: 126, value: 'UK' },
{ key: 123, value: 'Germany' },
{ key: 127, value: 'Spain' },
{ key: 125, value: 'Portugal' },
]];
हम parent array पर पुनरावृति करेंगे और फिर सभी उप-सरणियों पर एक-एक करके और यदि हमें मिलान करने वाली key मिलती है, तो हम इसे value सरणी में पुश करते हैं अन्यथा हम एक नई value सरणी बनाते हैं।
इसके लिए पूरा कोड:
const parentArray = [[
{ key: 123, value: 'India' },
{ key: 124, value: 'USA' },
{ key: 125, value: 'Japan' },
{ key: 126, value: 'Denmark' },
{ key: 127, value: 'Austria' },
], [
{ key: 124, value: 'Kenya' },
{ key: 126, value: 'UK' },
{ key: 123, value: 'Germany' },
{ key: 127, value: 'Spain' },
{ key: 125, value: 'Portugal' },
]];
const map = {};
parentArray.forEach(arr => {
arr.forEach(obj => {
const { key, value } = obj;
if (map[key]) {
map[key].push(value);
} else {
map[key] = [value];
}
})
});
console.log(map);
कंसोल में आउटपुट:
{
'123': [ 'India', 'Germany' ],
'124': [ 'USA', 'Kenya' ],
'125': [ 'Japan', 'Portugal' ],
'126': [ 'Denmark', 'UK' ],
'127': [ 'Austria', 'Spain' ]
}