Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में कुंजी प्रॉपर्टी के आधार पर ऑब्जेक्ट्स को ग्रुप करना


हमारे पास एक 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' ]
}

  1. - JavaScript में की/वैल्यू पेयर्स के लिए ऑब्जेक्ट्स बनाम ऐरे का समाधान कैसे करें?

    की-वैल्यू पेयर्स के लिए ऑब्जेक्ट लिटरल का उपयोग करें: var players = { 600: सचिन, 300: ब्रैड }; अधिक मान जोड़ने के लिए: var players = { 900: सचिन, 300: ब्रैड, 700: स्टीव, 200: राहुल, 600: केविन, // डुप्लीकेट की - अंतिम मान प्रभावी 500: डेविड }; नोट: डुप्लीकेट कीज़ में अंतिम मान जीतता

  1. जावास्क्रिप्ट में वैल्यू के आधार पर ऑब्जेक्ट्स को ग्रुप कैसे करें? जावास्क्रिप्ट में वैल्यू के आधार पर ऑब्जेक्ट्स को ग्रुप कैसे करें?

    जावास्क्रिप्ट में वैल्यू के आधार पर ऑब्जेक्ट्स को ग्रुप करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&g

  1. JavaScript में 2 ऑब्जेक्ट्स की तुलना करते हुए सरणी के नेस्टेड मान को ग्रुप करना JavaScript में 2 ऑब्जेक्ट्स की तुलना करते हुए सरणी के नेस्टेड मान को ग्रुप करना

    मान लीजिए हमारे पास निम्नलिखित JSON ऑब्जेक्ट है: const input = { before: { device: [ { id: 1234, price: 10, features: [ { name: samsung, price: 10 }, { name: Apple, price: 20 } ] }, { id: 2154, price: 20,