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

JavaScript में मल्टीपल फिल्टर्स के आधार पर JSON डेटा से औसत की गणना करना


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

const arr = [    { "SupplierName" : "John", "Category " : "A", "Points" : 3 },    { "SupplierName" : "John", "Category " : "A", "Points" : 11 },    { "SupplierName" : "John", "Category " : "A", "Points" : undefined },    { "SupplierName" : "John", "Category " : "B", "Points" : 2 },    { "SupplierName" : "John", "Category " : "B", "Points" : 6 },    { "SupplierName" : "Praveen", "Category " : "A", "Points" : 3 },    { "SupplierName" : "Praveen", "Category " : "A", "Points" : 7 } ];

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी लेता है।

फ़ंक्शन को निम्नलिखित चीजें करनी चाहिए -

  • दोहराने वाले सप्लायर्स को एक अद्वितीय अलग ऑब्जेक्ट में समूहित करें (दोहराने से, हमारा मतलब है "SupplierName" और "Category" फ़ील्ड वाले ऑब्जेक्ट्स)।
  • उनके पॉइंट्स को एक साथ जोड़ें
  • प्रत्येक ऑब्जेक्ट में एक नया "average" फ़ील्ड जोड़ें, जिसमें उस सप्लायर के औसत पॉइंट्स हों।

तो, अंत में आउटपुट इस तरह दिखना चाहिए -

const output = [    { "SupplierName" : "John", "Category " : "A", "Points" : 14, "Average" : 7 },    { "SupplierName" : "John", "Category " : "B", "Points" : 8, "Average" : 4 },    { "SupplierName" : "Praveen", "Category " : "A", "Points" : 10, "Average" : 5 } ];

उदाहरण

const arr = [    { "SupplierName" : "John", "Category " : "A", "Points" : 3 },    { "SupplierName" : "John", "Category " : "A", "Points" : 11 },    { "SupplierName" : "John", "Category " : "A", "Points" : undefined },    { "SupplierName" : "John", "Category " : "B", "Points" : 2 },    { "SupplierName" : "John", "Category " : "B", "Points" : 6 },    { "SupplierName" : "Praveen", "Category " : "A", "Points" : 3 },    { "SupplierName" : "Praveen", "Category " : "A", "Points" : 7 } ]; const groupAndAverage = (arr = []) => {    const groups = arr.reduce((acc, obj) => {        const name = obj.SupplierName + obj.Category;       if (acc[name]) {          if (obj.Points) (acc[name].Points += obj.Points) && ++acc[name].Average;       }       else { acc[name] = obj;          acc[name].Average = 1;          // पहले चरण में आइटम काउंटर के रूप में 'Average' विशेषता लेना       };       return acc;    }, {});    // "पॉइंट्स का औसत" प्राप्त करना const res = Object.keys(groups).map( name => {       groups[name].Average = Math.round(groups[name].Points/groups[name].Average);       return groups[name];    });    return res; }; console.log(JSON.stringify(groupAndAverage(arr), undefined, 4));

आउटपुट

कंसोल में आउटपुट होगा -

[    {       "SupplierName": "John",       "Category ": "A",       "Points": 22,       "Average": 6    },    {       "SupplierName": "Praveen",       "Category ": "A",       "Points": 10,       "Average": 5    } ]

  1. जावास्क्रिप्ट का उपयोग करके JSON ऐरे से डेटा कैसे पढ़ें? जावास्क्रिप्ट का उपयोग करके JSON ऐरे से डेटा कैसे पढ़ें?

    जावास्क्रिप्ट का उपयोग करके JSON ऐरे से डेटा पढ़ने का कोड निम्नलिखित है - उदाहरण <!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>  

  1. JavaScript में टेक्स्टएरिया इनपुट में JSON डेटा को प्रीटिफाई कैसे करें? JavaScript में टेक्स्टएरिया इनपुट में JSON डेटा को प्रीटिफाई कैसे करें?

    उदाहरण JSON.parse() और JSON.stringify() का उपयोग करके अनफॉर्मेटेड JSON को प्रीटिफाई करें। <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta name=viewport content=width=device-width, initial-scale=1.0> <title>Document</title> </head>

  1. एक्सेल मास्टरी: एकाधिक मानदंडों का उपयोग करके टेबल डेटा कुशलतापूर्वक निकालें एक्सेल मास्टरी: एकाधिक मानदंडों का उपयोग करके टेबल डेटा कुशलतापूर्वक निकालें

    आवश्यकता के समय डेटा निकालना किसी भी स्प्रेडशीट का उपयोग करने का प्रमुख कारक है, एक्सेल कोई अपवाद नहीं है। आप एक्सेल में टेबुलर फॉर्म में डेटा स्टोर करते हैं ताकि उन्हें निकाल सकें। आज हम आपको दिखाने जा रहे हैं कि एकाधिक मानदंडों के आधार पर टेबल से डेटा कैसे निकालें। पहली चीजें पहले, आइए उस डेटासेट