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

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

<घंटा/>

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

const arr =[ { "सप्लायरनाम":"जॉन", "श्रेणी":"ए", "अंक":3}, {"सप्लायरनाम":"जॉन", "श्रेणी":"ए", "अंक" " :11 }, { "आपूर्तिकर्ता का नाम" :"जॉन", "श्रेणी" :"ए", "अंक" :अपरिभाषित}, { "आपूर्तिकर्ता का नाम" :"जॉन", "श्रेणी" :"बी", "अंक" :2 }, { "आपूर्तिकर्ता का नाम":"जॉन", "श्रेणी" :"बी", "अंक" :6 }, { "आपूर्तिकर्ता का नाम" :"प्रवीण", "श्रेणी" :"ए", "अंक" :3 } , { "सप्लायरनाम" :"प्रवीन", "श्रेणी" :"ए", "अंक" :7 }];

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

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

  • समूह दोहराए जाने वाले आपूर्तिकर्ताओं को एक अद्वितीय अलग वस्तु में (दोहराने से, हमारा मतलब समान "आपूर्तिकर्ता नाम" और "श्रेणी" फ़ील्ड वाली वस्तुओं से है)।
  • उनके अंक एक साथ जोड़ें
  • प्रत्येक वस्तु में एक नया "औसत क्षेत्र जोड़ें, जिसमें उस आपूर्तिकर्ता के औसत अंक हों।

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

 कॉन्स्ट आउटपुट =[ { "सप्लायरनाम":"जॉन", "श्रेणी":"ए", "अंक":14, "औसत":7}, {"सप्लायरनाम":"जॉन", "श्रेणी":"बी", "अंक":8, "औसत":4}, {"सप्लायरनाम":"प्रवीन", "श्रेणी":"ए", "अंक":10, "औसत":5}]; 

उदाहरण

const arr =[ { "सप्लायरनाम":"जॉन", "श्रेणी":"ए", "अंक":3}, {"सप्लायरनाम":"जॉन", "श्रेणी":"ए", "अंक" " :11 }, { "आपूर्तिकर्ता का नाम" :"जॉन", "श्रेणी" :"ए", "अंक" :अपरिभाषित}, { "आपूर्तिकर्ता का नाम" :"जॉन", "श्रेणी" :"बी", "अंक" :2 }, { "आपूर्तिकर्ता का नाम":"जॉन", "श्रेणी" :"बी", "अंक" :6 }, { "आपूर्तिकर्ता का नाम" :"प्रवीण", "श्रेणी" :"ए", "अंक" :3 } , { "आपूर्तिकर्ता नाम":"प्रवीन", "श्रेणी":"ए", "अंक":7}]; const groupAndAverage =(arr =[]) => { const group =arr.reduce((acc, obj) => { const name =obj.SupplierName + obj.Category; if (acc[name]) { if (obj.Points) (acc[name].Points +=obj.Points) &&++acc[name].औसत; } और {एसीसी [नाम] =ओबीजे; एसीसी [नाम]। औसत =1; // आइटम काउंटर के रूप में 'औसत' विशेषता लेना (पहले चरण पर)}; वापसी एसीसी; }, {}); // "अंकों का औसत" प्राप्त करना const res =Object.keys(groups).map(name => {groups[name].Average =Math.round(groups[name].Points/groups[name].Average); वापसी समूह [नाम]; }); वापसी रेस;}; कंसोल.लॉग(JSON.stringify(groupAndAverage(arr), undefined, 4));

आउटपुट

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

[ { "आपूर्तिकर्ता का नाम":"जॉन", "श्रेणी":"ए", "अंक":22, "औसत":6}, { "आपूर्तिकर्ता का नाम":"प्रवीन", "श्रेणी":"ए" , "अंक":10, "औसत":5 }]

  1. कैसे जावास्क्रिप्ट का उपयोग कर JSON सरणी से डेटा पढ़ने के लिए?

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

  1. जावास्क्रिप्ट में टेक्स्टरेरा इनपुट में JSON डेटा को सुंदर बनाएं?

    इसके लिए JSON.stringify() के साथ JSON.parse() का इस्तेमाल करें। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initialscale=1.0"> <title>Document</

  1. Excel में एकाधिक मानदंडों के आधार पर तालिका से डेटा कैसे निकालें

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