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

ऐरे के दोहराए गए मानों का योग करें - JavaScript


मान लीजिए, हमारे पास ऑब्जेक्ट्स का एक ऐरे है जैसे:

const arr = [
    {'ID-01':1},
    {'ID-02':3},
    {'ID-01':3},
    {'ID-02':5}
];

हमें इन सभी ऑब्जेक्ट्स के मानों को एक साथ जोड़ना है जिनकी कीज़ समान हैं।

इसलिए, इस ऐरे के लिए आउटपुट होना चाहिए:

const output = [{'ID-01':4}, {'ID-02':8}];

हम ऐरे पर लूप करेंगे, समान कीज़ वाले मौजूदा ऑब्जेक्ट्स की जांच करेंगे, अगर वे हैं, तो हम उसमें मान जोड़ देंगे अन्यथा नए ऑब्जेक्ट्स को ऐरे में पुश करेंगे।

उदाहरण

निम्नलिखित कोड है:

const arr = [
    {'ID-01':1},
    {'ID-02':3},
    {'ID-01':3},
    {'ID-02':5}
];
const indexOf = function(key){
    return this.findIndex(el => typeof el[key] === 'number')
};
Array.prototype.indexOf = indexOf;
const groupArray = arr => {
    const res = [];
    for(let i = 0; i < arr.length; i++){
        const key = Object.keys(arr[i])[0];
        const ind = res.indexOf(key);
        if(ind !== -1){
            res[ind][key] += arr[i][key];
        }else{
            res.push(arr[i]);
        };
    };
    return res;
};
console.log(groupArray(arr));

आउटपुट

यह कंसोल में निम्नलिखित आउटपुट देगा:

[ { 'ID-01': 4 }, { 'ID-02': 8 } ]

  1. जावास्क्रिप्ट में एरे बनाम सेट जावास्क्रिप्ट में एरे बनाम सेट

    Set डेटा टाइप को ES2015 में पेश किया गया था और एरे और सेट के बीच अंतर यह है कि जहां एरे में डुप्लिकेट वैल्यूज हो सकती हैं, वहीं सेट में नहीं हो सकतीं। एरे में एलिमेंट्स को इंडेक्स का उपयोग करके एक्सेस किया जा सकता है जो सेट में संभव नहीं है क्योंकि यह कीज़ का उपयोग करता है और एलिमेंट्स को केवल उसी

  1. जावास्क्रिप्ट में एरे को रिड्यूस कैसे करें? जावास्क्रिप्ट में एरे को रिड्यूस कैसे करें?

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

  1. JavaScript में (+) ऑपरेटर जोड़ के बजाय कन्कैटिनेशन क्यों करता है? JavaScript में (+) ऑपरेटर जोड़ के बजाय कन्कैटिनेशन क्यों करता है?

    JavaScript में + ऑपरेटर स्ट्रिंग्स के साथ कन्कैटिनेशन करता है। इनपुट फ़ील्ड से मिलने वाले मान स्ट्रिंग होते हैं, इसलिए उन्हें संख्या में बदलने के लिए parseInt(), parseFloat(), Number() या यूनरी + ऑपरेटर का उपयोग करें। समस्या 5 + 3 // 53 (स्ट्रिंग कन्कैटिनेशन) 5 + 3 // 8 (संख्या जोड़) समाधान //