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

JavaScript में दो अलग-अलग ऐरे को मिलाना


मान लीजिए हमारे पास दो ऐरे हैं, पहला ऐरे कुछ इवेंट्स की निर्धारित तारीखें रखता है और दूसरा ऐरे उन इवेंट्स के नाम रखता है:

const dates = [    {       id:"1",       date:"2017-11-07"    },    {       id:"1",       date:"2017-11-08"    },    {       id:"2",       date:"2017-11-07"    },    {       id:"2",       date:"2017-11-08"    } ]; const names = [    {       id:"1",       name:"Pervies, Peter"    },    {       id:"2",       name:"Ming, Edmund"    } ];

हमें एक जावास्क्रिप्ट फंक्शन लिखना है जो ऐसे दो ऐरे ले और id प्रॉपर्टी के आधार पर इवेंट नामों को उनकी संबंधित तारीखों के साथ मिलाए।

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

const output = [    {       id:"1",       name:"Pervies, Peter",       details:[          {date:"2017-11-07"},          {date:"2017-11-08"}       ]    },    {       id:"2",       name:"Ming, Edmund",       details:[          {date:"2017-11-07"},          {date:"2017-11-08"}       ]    } ]

उदाहरण

इसके लिए कोड:

const dates = [    {       id:"1",       date:"2017-11-07"    },    {       id:"1",       date:"2017-11-08"    },    {       id:"2",       date:"2017-11-07"    },    {       id:"2",       date:"2017-11-08"    } ]; const names = [    {       id:"1",       name:"Pervies, Peter"    },    {       id:"2",       name:"Ming, Edmund"    } ]; const combineArrays = (dates, names) => {    const res = [];    dates.forEach(el => {       const bool = !res.some(item => {          return item.id == el.id;       });       if(bool){          let combined = {};          combined.id = el.id;          combined.details = combined.details || [];          combined.details.push({               "date": el.date          });          res.push(combined);       }else{          res.find(item => {             return item.id === el.id;          })          .details.push({               "date": el.date          });       };    });    res.forEach(el => {       const bool = names.some(item => {          return item.id === el.id;       });       if(bool){          el.name = names.find(name => {             return name.id === el.id;          }).name;       };    });    return res; }; console.log(JSON.stringify(combineArrays(dates, names), undefined, 4));

आउटपुट

कंसोल में आउटपुट:

[    {       "id": "1",       "details": [          {             "date": "2017-11-07"          },          {             "date": "2017-11-08"          }       ],       "name": "Pervies, Peter"    },    {       "id": "2",       "details": [          {             "date": "2017-11-07"          },          {             "date": "2017-11-08"          }       ],       "name": "Ming, Edmund"    } ]

  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>    bod

  1. जावास्क्रिप्ट में दो ऐरे को कैसे गुणा करें? जावास्क्रिप्ट में दो ऐरे को कैसे गुणा करें?

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