Beispiel für die Konvertierung eines eindimensionalen JS-Arrays in ein dreidimensionales Array

Beispiel für die Konvertierung eines eindimensionalen JS-Arrays in ein dreidimensionales Array

Heute habe ich gesehen, wie ein Freund im Q&A-Bereich von CSDN eine Frage gestellt hat. Er wollte ein eindimensionales Array in ein dreidimensionales Array umwandeln. Ich war nicht sehr beschäftigt, also habe ich sofort eine Aufgabe für ihn organisiert. Natürlich habe ich mir nicht die Mühe gemacht, irgendwelche Informationen oder so nachzuschlagen. Ich bin einfach meinen eigenen Ideen gefolgt! Unten finden Sie den Quellcode

Bildbeschreibung hier einfügen

Das Obige ist sein Datenformat und das Folgende ist das zu konvertierende Datenformat

Bildbeschreibung hier einfügen

Kommen wir ohne weitere Umschweife direkt zum Code

 lass arr = [{
      'peovince': 'a', 'Stadt': 'b', 'Gebiet': 'c'
    },
    {
      'peovince': 'a', 'Stadt': 'b', 'Gebiet': 'd'
    },
    {
      'peovince': 'a', 'Stadt': 'e', ​​​​'Bereich': 'f'
    },
    {
      'peovince': 'a', 'Stadt': 'e', ​​​​'Bereich': 'g'
    },
    {
      'peovince': 'o', 'Stadt': 'p', 'Gebiet': 'q'
    },
    {
      'peovince': 'o', 'Stadt': 'p', 'Gebiet': 'r'
    },
    {
      'peovince': 'o', 'Stadt': 's', 'Gebiet': 't'
    },
    {
      'peovince': 'o', 'Stadt': 's', 'Gebiet': 'v'
    }];

Konvertierung starten

lass Liste = Array.from(neues Set(
      arr.map(Element => {
        Artikel zurückgeben['peovince']
      })))
    let Unterliste = []
    Liste.fürJeden(res => {
      arr.fürEach(ele => {
        wenn (ele['peovince'] === res) {
          let nameArr = subList.map(Artikel => Artikel.Wert)
          wenn (nameArr.indexOf(res) !== -1) {
            let nameArr2 = Unterliste[nameArr.indexOf(res)].children.map(Element => Element.Wert)
            wenn (nameArr2.indexOf(ele['Stadt']) !== -1) {
              Unterliste[nameArr.indexOf(res)].Kinder[nameArr2.indexOf(ele['Stadt'])].Kinder.push({
                Wert: ele['Bereich'],
                Bezeichnung: Element ['Bereich'],
              })
            } anders {
              Unterliste[nameArr.indexOf(res)].children.push({
                Wert: ele['Stadt'],
                Bezeichnung:ele['Stadt'],
                Kinder: [{
                  Wert: ele['Bereich'],
                  Bezeichnung: Element ['Bereich'],
                }]
              })
            }
          } anders {
            Unterliste.push({
              Wert: res,
              Bezeichnung: res,
              Kinder: [{
                Wert: ele['Stadt'],
                Bezeichnung:ele['Stadt'],
                Kinder: [{
                  Wert: ele['Bereich'],
                  Bezeichnung: Element ['Bereich'],
                }]
              }]
            })
          }
        }
      })

    })
    console.log(Unterliste)

Die am Ende ausgedruckte Unterliste hat das gewünschte Format. Werfen wir einen Blick auf den Druck

ps: Eindimensionales Array in zweidimensionales Array in JavaScript

Der erste Fall: wenn das Array Zeichenfolgen enthält

  lass Array = [1, 2, 3, 4, 5, 6, 7, 8];
  len len = Array.Länge;
  let n = 4; //Angenommen, es werden 4 Elemente pro Zeile angezeigt let lineNum = len % n === 0 ? len / n : Math.floor( (len / n) + 1 );
  lass res = [];
  für (lass i = 0; i < Zeilennummer; i++) {
    // Die Methode slice() gibt eine oberflächliche Kopie eines vom Anfang bis zum Ende (das Ende ausgenommen) ausgewählten Teils eines Arrays in ein neues Array-Objekt zurück. Das ursprüngliche Array wird nicht geändert.
    : Lassen Sie temp = array.slice(i*n, i*n+n);
    res.push(temp);
  }
  konsole.log(res);

Der zweite Fall: wenn das Array Objekte enthält

Wenn die Array-Elemente Objekte sind, können Sie sie nicht mit der Slice-Methode abfangen, da Slice eine oberflächliche Kopie ist. Das daraus resultierende Problem besteht darin, dass sich eine Änderung des Werts des neu generierten Array-Objekts auf den Wert des Objekts im ursprünglichen Array auswirkt.
Hier stellen wir eine Methode vor, die JSON.stringify und JSON.parse verwendet.

  lass objArray = [{a: 1}, {b: 2}, {c: 3}, {d: 4}, {e: 5}, {f: 6}, {g: 7}];
  lass len = objArray.length;
  let n = 4; //Angenommen, es werden 4 Elemente pro Zeile angezeigt let lineNum = len % 4 === 0 ? len / 4 : Math.floor( (len / 4) + 1 );
  lass res = [];
  für (lass i = 0; i < Zeilennummer; i++) {
    : Lassen Sie temp = objArray.slice(i*n, i*n+n);
    res.push(JSON.parse(JSON.stringify(temp)));
  }
  konsole.log(res);


Dies ist das Ende dieses Artikels über die Konvertierung eines eindimensionalen JS-Arrays in ein dreidimensionales Array. Weitere relevante Inhalte zur Konvertierung eines eindimensionalen JS-Arrays in ein dreidimensionales Array finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Konvertierung eines eindimensionalen JS-Arrays in ein dreidimensionales Array

<<:  Detaillierte Zusammenfassung häufig verwendeter MySQL-Funktionen

>>:  Methode der Iframe-Anpassung im webresponsiven Layout

Artikel empfehlen

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

Lösung für das Fehlen der my.ini-Datei in MySQL 5.7

Was ist my.ini? my.ini ist die in der MySQL-Daten...

Lösung für das Problem „VMware-virtuelle Maschine ohne Netzwerk“

Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...

So installieren Sie Docker unter Windows Server 2016

Kürzlich hat Microsoft Windows Server 2016 veröff...

So verwenden Sie residente Knoten für die Ebenenverwaltung in CocosCreator

CocosCreator-Version: 2.3.4 Die meisten Spiele ve...

So beenden Sie den MySQL-Prozess ordnungsgemäß und sicher

Vorwort In diesem Artikel wird der Vorgang zum He...

Wie funktionieren die dynamischen Komponenten von Vue3?

Inhaltsverzeichnis 1. Komponentenregistrierung 1....

Detailliertes Linux-Installationstutorial

(Win7-System) Tutorial zur Installation einer vir...

HTML CSS3 streckt den Bildanzeigeeffekt nicht

1. Verwenden Sie das Transform-Attribut, um das B...

Beispiel für die MySQL-Methode zum Löschen von Daten und Datentabellen

Es ist sehr einfach, Daten und Tabellen in MySQL ...