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

JavaScript में JSON से ट्री ऐरे बनाना


मान लीजिए, हमारे पास JavaScript में निम्नलिखित ऐरे है:

const arr = [{    "code": "2",    "name": "PENDING" }, {    "code": "2.2",    "name": "PENDING CHILDREN" }, {    "code": "2.2.01.01",    "name": "PENDING CHILDREN CHILDREN" }, {    "code": "2.2.01.02",    "name": "PENDING CHILDREN CHILDREN02" }, {    "code": "1",    "name": "ACTIVE" }, {    "code": "1.1",    "name": "ACTIVE CHILDREN" }, {    "code": "1.1.01",    "name": "ACTIVE CHILDREN CHILDREN" }];

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसा ऐरे लेता है। फ़ंक्शन को ऑब्जेक्ट्स के "name" प्रॉपर्टी के आधार पर इस ऐरे से ट्री स्ट्रक्चर बनाना चाहिए।

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

const output = [{    "code": "2",    "name": "PENDING",    "children": [{       "code": "2.2",       "name": "PENDING CHILDREN",       "children": [{          "code": "2.2.01.01",          "name": "PENDING CHILDREN CHILDREN"       },       {          "code": "2.2.01.02",          "name": "PENDING CHILDREN CHILDREN02"       }]    }] }, {    "code": "1",    "name": "ACTIVE",    "children": [{       "code": "1.1",       "name": "ACTIVE CHILDREN",       "children": [{          "code": "1.1.01",          "name": "ACTIVE CHILDREN CHILDREN"       }]    }] }];

उदाहरण

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

const arr = [{    "code": "2",    "name": "PENDING" }, {    "code": "2.2",    "name": "PENDING CHILDREN" }, {    "code": "2.2.01.01",    "name": "PENDING CHILDREN CHILDREN" }, {    "code": "2.2.01.02",    "name": "PENDING CHILDREN CHILDREN02" }, {    "code": "1",    "name": "ACTIVE" }, {    "code": "1.1",    "name": "ACTIVE CHILDREN" }, {    "code": "1.1.01",    "name": "ACTIVE CHILDREN CHILDREN" }]; const transformToTree = (arr, root = '') => {    let map = {}, last = [root], level = 0;    map[root] = {};    arr.forEach(el => {       let parent = root;       while (level && last[level].length >= el.code.length) {          level--;       };       parent = last[level];       level++;       last.length = level;       last.push(el.code);       map[el.code] = el;       map[parent].children = map[parent].children || [];       map[parent].children.push(el);    });    return map[root].children; }; console.log(JSON.stringify(transformToTree(arr), undefined, 4));

आउटपुट

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

[    {       "code": "2",       "name": "PENDING",       "children": [          {             "code": "2.2",             "name": "PENDING CHILDREN",             "children": [                {                   "code": "2.2.01.01",                   "name": "PENDING CHILDREN CHILDREN"                },                {                   "code": "2.2.01.02",                   "name": "PENDING CHILDREN CHILDREN02"                }             ]          }       ]    },    {       "code": "1",       "name": "ACTIVE",       "children": [          {             "code": "1.1",             "name": "ACTIVE CHILDREN",             "children": [                {                   "code": "1.1.01",                   "name": "ACTIVE CHILDREN CHILDREN"                }             ]          }       ]    } ]

  1. JavaScript Array.from(): एरे-लाइक से एरे बनाएं JavaScript Array.from(): एरे-लाइक से एरे बनाएं

    Array.from() एक स्थिर मेथड है जो एरे-लाइक या इटरेटर ऑब्जेक्ट्स से एक नया, शैलो-कॉपीड एरे इंस्टेंस बनाता है। यह arguments, NodeList, Set, Map, स्ट्रिंग्स, आदि को एरे में बदलने का मानक तरीका है। उदाहरण { const arr = Array.from(str); fillEle.innerHTML = एरे: + arr.join(, ); })

  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. जावास्क्रिप्ट कोड ऐरे के अंतिम एलिमेंट को प्रिंट करने के लिए जावास्क्रिप्ट कोड ऐरे के अंतिम एलिमेंट को प्रिंट करने के लिए

    ऐरे के अंतिम एलिमेंट को प्रिंट करने का कोड निम्नलिखित है - उदाहरण <!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>    body { &n