"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > #LearnedToday: ऑब्जेक्ट.ग्रुपबाय()

#LearnedToday: ऑब्जेक्ट.ग्रुपबाय()

2024-11-01 को प्रकाशित
ब्राउज़ करें:397

#LearnedToday: Object.groupBy()

? यह अंततः बाहर है! किसी फ़ील्ड के विशिष्ट मान के आधार पर वस्तुओं की एक श्रृंखला को समूहीकृत करने के लिए अब बदसूरत कोड लिखने की आवश्यकता नहीं है!

2023 के अंत से, ऑब्जेक्ट के लिए ग्रुपबाय() नामक एक आधिकारिक स्थिर विधि है जो हमारे लिए यह करती है!
यह एक Iterable को स्वीकार करता है, जैसे कि एक Array, और एक फ़ंक्शन, जिसे प्रत्येक तत्व के लिए निष्पादित किया जाता है और उसे उस विशिष्ट तत्व की "श्रेणी" वापस करनी होगी।
विधि एक नई वस्तु लौटाती है जहां प्रत्येक कुंजी एक अलग श्रेणी होती है जिसमें उस विशिष्ट श्रेणी से संबंधित वस्तुओं की एक श्रृंखला होती है।

ध्यान दें: लौटाई गई वस्तु और मूल पुनरावर्तनीय में तत्व समान हैं (गहरी प्रतियां नहीं!)। तत्वों की आंतरिक संरचना में परिवर्तन मूल पुनरावर्तनीय और लौटाई गई वस्तु दोनों में दिखाई देगा।

उदाहरण

आइए यह देखने के लिए एक व्यावहारिक उदाहरण दें कि सभी निंजा कछुओं के पात्रों को उम्र के आधार पर समूहित करना कितना आसान है

प्रारंभिक सरणी

const ninjaTurtlesCharacters = [
  { age: 16, name: 'Michelangelo' },
  { age: 16, name: 'Raffaello' },
  { age: 16, name: 'Donatello' },
  { age: 16, name: 'Leonardo' },
  { age: 91, name: 'Splinter' },
  { age: 25, name: 'Casey Jones' },
  { age: 25, name: 'April O\'Neil' }
];

अच्छा पुराना तरीका (कम करने के साथ)

const ninjaTurtlesCharactersByAge = ninjaTurtlesCharacters.reduce(
  (groupedPeople, item) => ({
    ...groupedPeople,
    [item.age]: groupedPeople[item.age]
      ? [...groupedPeople[item.age], item]
      : [item],
  }),
  {}
);

आधुनिक तरीका

const ninjaTurtlesCharactersByAgeNew = Object.groupBy(
  ninjaTurtlesCharacters,
  ({ age }) => age
);

टिप: यदि आप किसी ऑब्जेक्ट के बजाय मैप वापस करना चाहते हैं तो Map.groupBy() का उपयोग करें

नतीजा

{
  "16": [
    { age: 16, name: 'Michelangelo' },
    { age: 16, name: 'Raffaello' },
    { age: 16, name: 'Donatello' },
    { age: 16, name: 'Leonardo' }
  ],
  "25": [
    { age: 25, name: 'Casey Jones' },
    { age: 25, name: 'April O\'Neil' }
  ],
  "91": [
    { age: 91, name: 'Splinter' }
  ]
}

डेमो

??‍? हमेशा की तरह, मैंने कोड के साथ खेलने के लिए एक सरल स्टैकब्लिट्ज़ प्रोजेक्ट बनाया।

? दस्तावेज़: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy

ℹ ब्राउज़र समर्थन: https://caniuse.com/mdn-javascript_buildins_object_groupby

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/danielzotti/learnedtoday-objectgroupby-4kl9?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3