javascript - Kembalikan struktur JSON pokok mengikut kedalaman yang ditentukan
黄舟
黄舟 2017-05-19 10:23:17
0
2
459

Terdapat sekeping JSON, seperti berikut:
Mengikut tahap pokok, ia adalah tahap 3. Saya kini ingin kembali ke 2 tahap pertama dan membuang tahap ke-3 Bagaimana saya boleh menggunakan kod javascript untuk mencapai ini?
Struktur asal:
[{

            'id': 1,
            'title': 'node1',
            'nodes': [
                {
                    'id': 11,
                    'title': 'node1.1',
                    'nodes': **[
                        {
                            'id': 111,
                            'title': 'node1.1.1',
                            'nodes': []
                        }**
                    ]
                },
                {
                    'id': 12,
                    'title': 'node1.2',
                    'nodes': []
                }
            ]
        }, {
            'id': 2,
            'title': 'node2',
            'nodes': [
                {
                    'id': 21,
                    'title': 'node2.1',
                    'nodes': []
                },
                {
                    'id': 22,
                    'title': 'node2.2',
                    'nodes': []
                }
            ]
        }, {
            'id': 3,
            'title': 'node3',
            'nodes': [
                {
                    'id': 31,
                    'title': 'node3.1',
                    'nodes': []
                }
            ]
        }]

Struktur yang diproses:

    [{
            'id': 1,
            'title': 'node1',
            'nodes': [
                {
                    'id': 11,
                    'title': 'node1.1',
                    **'nodes': []**
                },
                {
                    'id': 12,
                    'title': 'node1.2',
                    'nodes': []
                }
            ]
        }, {
            'id': 2,
            'title': 'node2',
            'nodes': [
                {
                    'id': 21,
                    'title': 'node2.1',
                    'nodes': []
                },
                {
                    'id': 22,
                    'title': 'node2.2',
                    'nodes': []
                }
            ]
        }, {
            'id': 3,
            'title': 'node3',
            'nodes': [
                {
                    'id': 31,
                    'title': 'node3.1',
                    'nodes': []
                }
            ]
        }]    
        
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(2)
巴扎黑

Adalah lebih mudah untuk menggunakan rekursi untuk operasi pokok

depth ialah bilangan lapisan yang dikhaskan. Ambil perhatian bahawa ia dipanggil untuk nod lapisan itu. 'id': 1,

function removeNode (root, depth) {
  if (typeof root !== 'object' || typeof depth !== 'number' || !Array.isArray(root.nodes)) { return root }
  if (depth < 1) { return {} }

  if (depth === 1) {
    root.nodes = []
  } else {
    root.nodes.forEach(node => {
      removeNode(node, depth - 1)
    })
  }

  return root
}
世界只因有你

Anda hanya boleh mengulangi dua tahap json dan memasang semula json baharu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!