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

जावास्क्रिप्ट में JSON ऑब्जेक्ट में प्रत्येक प्रविष्टि के लिए एक अद्वितीय आईडी जोड़ना

<घंटा/>

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

const arr = [
   {
      "Arts": [
         {
            "Performing arts": [
               {
                  "Music": [
                     { "title": "Accompanying" },
                     { "title": "Chamber music" },
                     { "title": "Church music" },
                     { "Conducting": [
                        { "title": "Choral conducting" },
                        { "title": "Orchestral conducting" },
                        { "title": "Wind ensemble conducting" }
                     ] },
                     { "title": "Early music" },
                     { "title": "Jazz studies" },
                     { "title": "Musical composition" },
                     { "title": "Music education" },
                     { "title": "Music history" },
                     { "Musicology": [
                        { "title": "Historical musicology" },
                        { "title": "Systematic musicology" }
                  ] },
                  { "title": "Ethnomusicology" },
                  { "title": "Music theory" },
                  { "title": "Orchestral studies" },
                  { "Organology": [
                     { "title": "Organ and historical keyboards" },
                     { "title": "Piano" },
                     { "title": "Strings, harp, oud, and guitar" },
                     { "title": "Singing" },
                     { "title": "Strings, harp, oud, and guitar" }
               ] },
               { "title": "Recording" }
            ] },
               { "Dance": [
               { "title": "Choreography" },
               { "title": "Dance notation" },
               { "title": "Ethnochoreology" },
               { "title": "History of dance" }
            ] },
            { "Television": [
               { "title": "Television studies" }
            ] },
            { "Theatre": [
               { "title": "Acting" },
               { "title": "Directing" },
               { "title": "Dramaturgy" },
               { "title": "History" },
               { "title": "Musical theatre" },
               { "title": "Playwrighting" },
               { "title": "Puppetry" }
            ] }
         ]
      }]
}];

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

"आईडी" संपत्ति का मूल्य अधिक महत्व का नहीं है (यह कोई भी अद्वितीय मूल्य हो सकता है), जो अधिक महत्वपूर्ण है वह यह है कि "शीर्षक" संपत्ति वाले उन सभी वस्तुओं में "आईडी" संपत्ति होनी चाहिए।

हमें वास्तविक सरणी की प्रतिलिपि बनाए बिना ऐसा करना होगा।

उदाहरण

इसके लिए कोड होगा -

const arr = [
   { "Arts": [
      { "Performing arts": [
         { "Music": [
            { "title": "Accompanying" },
            { "title": "Chamber music" },
            { "title": "Church music" },
            { "Conducting": [
               { "title": "Choral conducting" },
               { "title": "Orchestral conducting" },
               { "title": "Wind ensemble conducting" }
            ] },
            { "title": "Early music" },
            { "title": "Jazz studies" },
            { "title": "Musical composition" },
            { "title": "Music education" },
            { "title": "Music history" },
            { "Musicology": [
               { "title": "Historical musicology" },
               { "title": "Systematic musicology" }
            ] },
            { "title": "Ethnomusicology" },
            { "title": "Music theory" },
            { "title": "Orchestral studies" },
            { "Organology": [
               { "title": "Organ and historical keyboards" },
               { "title": "Piano" },
               { "title": "Strings, harp, oud, and guitar" },
               { "title": "Singing" },
               { "title": "Strings, harp, oud, and guitar" }
            ] },
            { "title": "Recording" }
         ] },
         { "Dance": [
            { "title": "Choreography" },
            { "title": "Dance notation" },
            { "title": "Ethnochoreology" },
            { "title": "History of dance" }
         ] },
         { "Television": [
            { "title": "Television studies" }
         ] },
         { "Theatre": [
            { "title": "Acting" },
            { "title": "Directing" },
            { "title": "Dramaturgy" },
            { "title": "History" },
            { "title": "Musical theatre" },
            { "title": "Playwrighting" },
            { "title": "Puppetry" }
         ] }
      ]
   }]
}];
const addId = (id = 1) => {
   return function recur(obj) {
      if ('title' in obj) {
         obj.id = id++;
      };
      Object.keys(obj).forEach(el => {
         Array.isArray(obj[el]) && obj[el].forEach(recur);
      });
   };
}
const mapId = arr => {
   arr.forEach(addId);
}
mapId(arr);
console.log(JSON.stringify(arr, undefined, 4));

आउटपुट

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

[
   {
      "Arts": [
         {
            "Performing arts": [
               {
                  "Music": [
                     {
                        "title": "Accompanying"
                     },
                     {
                        "title": "Chamber music"
                     },
                     {
                        "title": "Church music"
                     },
                     {
                        "Conducting": [
                           {
                              "title": "Choral conducting"
                           },
                           {
                              "title": "Orchestral conducting"
                           },
                           {
                              "title": "Wind ensemble conducting"
                           }
                        ]
                     },
                     {
                        "title": "Early music"
                     },
                     {
                        "title": "Jazz studies"
                     },
                     {
                        "title": "Musical composition"
                     },
                     {
                        "title": "Music education"
                     },
                     {
                        "title": "Music history"
                     },
                     {
                        "Musicology": [
                           {
                              "title": "Historical musicology"
                           },
                           {
                              "title": "Systematic musicology"
                           }
                        ]
                     },
                     {
                        "title": "Ethnomusicology"
                     },
                     {
                        "title": "Music theory"
                     },
                     {
                        "title": "Orchestral studies"
                     },
                     {
                        "Organology": [
                           {
                              "title": "Organ and historical keyboards"
                           },
                           {
                              "title": "Piano"
                           },
                           {
                              "title": "Strings, harp, oud, and guitar"
                           },
                           {
                              "title": "Singing"
                           },
                           {
                              "title": "Strings, harp, oud, and guitar"
                           }
                        ]
                     },
                     {
                        "title": "Recording"
                     }
                  ]
               },
               {
                  "Dance": [
                     {
                        "title": "Choreography"
                     },
                     {
                           "title": "Dance notation"
                     },
                     {
                        "title": "Ethnochoreology"
                     },
                     {
                        "title": "History of dance"
                     }
                  ]
               },
               {
                  "Television": [
                     {
                        "title": "Television studies"
                     }
                  ]
               },
               {
                  "Theatre": [
                     {
                        "title": "Acting"
                     },
                     {
                        "title": "Directing"
                     },
                     {
                        "title": "Dramaturgy"
                     },
                     {
                        "title": "History"
                     },
                     {
                        "title": "Musical theatre"
                     },
                     {
                        "title": "Playwrighting"
                     },
                     {
                        "title": "Puppetry"
                     }
                  ]
               }
            ]
         }
      ]
   }
]

  1. JSON टेक्स्ट को जावास्क्रिप्ट JSON ऑब्जेक्ट में कैसे बदलें?

    JSON पार्स () विधि का उपयोग JSON टेक्स्ट को JavaScript ऑब्जेक्ट में बदलने के लिए किया जाता है। JSON टेक्स्ट को JavaScript JSON ऑब्जेक्ट में बदलने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta n

  1. कैसे जावास्क्रिप्ट में प्रत्येक वस्तु के लिए एक अद्वितीय आईडी बनाने के लिए?

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

  1. जावास्क्रिप्ट में JSON ऑब्जेक्ट को फ़्लैट करना

    मान लीजिए, हमारे पास निम्न JSON ऑब्जेक्ट है जिसमें किसी भी स्तर तक घोंसला हो सकता है - const obj = {    "one": 1,    "two": {       "three": 3    },    "four": {       "five": 5, &