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

वस्तुओं की सरणी के भीतर समान संख्यात्मक मानों का योग - जावास्क्रिप्ट

<घंटा/>

मान लीजिए, हमारे पास इस तरह की वस्तुओं की एक सरणी है -

const arr = [
   {"firstName":"John", "value": 89},
   {"firstName":"Peter", "value": 151},
   {"firstName":"Anna", "value": 200},
   {"firstName":"Peter", "value": 22},
   {"firstName":"Anna","value": 60}
];

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक ऐसी सरणी लेता है और उन सभी ऑब्जेक्ट्स की वैल्यू प्रॉपर्टी को जोड़ता है जिनका फर्स्टनाम प्रॉपर्टी के लिए समान मूल्य होता है।

इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए -

const output = [
   {"firstName":"John", "value": 89},
   {"firstName":"Peter", "value": 173},
   {"firstName":"Anna", "value": 260}
];

प्रत्येक वस्तु के लिए, हम उनकी समान वस्तुओं को पुनरावर्ती रूप से खोजेंगे

(इस प्रश्न के संदर्भ के लिए समान वस्तुएं वे हैं जिनका फर्स्टनाम मान समान है)।

फिर हम एक ऑब्जेक्ट में वैल्यू प्रॉपर्टी जोड़ेंगे और दूसरी ऑब्जेक्ट को ऐरे से हटा देंगे। यह तब तक किया जाएगा जब तक हम सरणी के अंत तक नहीं पहुंच जाते। पहुंचने पर, हम अपने सरणी को वांछित सरणी में कम कर देते।

उदाहरण

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

const arr = [
   {"firstName":"John", "value": 89},
   {"firstName":"Peter", "value": 151},
   {"firstName":"Anna", "value": 200},
   {"firstName":"Peter", "value": 22},
   {"firstName":"Anna","value": 60}
];
const sumSimilar = arr => {
   const res = [];
   for(let i = 0; i < arr.length; i++){
      const ind = res.findIndex(el => el.firstName === arr[i].firstName);
      if(ind === -1){
         res.push(arr[i]);
      }else{
         res[ind].value += arr[i].value;
      };
   };
   return res;
};
console.log(sumSimilar(arr));

आउटपुट

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

[
   { firstName: 'John', value: 89 },
   { firstName: 'Peter', value: 173 },
   { firstName: 'Anna', value: 260 }
]

  1. जावास्क्रिप्ट सरणी। मान ()

    JavaScript array.values() एक इटरेटर ऑब्जेक्ट लौटाता है जिसमें किसी दिए गए सरणी के सभी मान होते हैं। array.values() फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport"

  1. जावास्क्रिप्ट का उपयोग करके ऐरे में नेस्टेड ऑब्जेक्ट मानों का योग

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

  1. 2 वस्तुओं की तुलना करते समय समूहबद्ध सरणी नेस्टेड मान - जावास्क्रिप्ट

    मान लीजिए, हमारे पास निम्नलिखित JSON ऑब्जेक्ट है - const input = {    "before": {      "device": [        {          "id": "1234",          "price": "