javascript - Hur kan jag kopiera en nyckel i en trädstruktur till en nyckel med ett annat namn eller byta namn på den till något annat?


Hur kan jag kopiera en nyckel i en trädstruktur till en nyckel med ett annat namn eller byta namn på den till något annat?

Från detta:

[
   {
      "title":"testing",
      "id":1,
      "children":[
         {
            "title":"Preamble",
            "id":2
         }
      ]
   }
]

Till detta:

[
   {
      "title":"testing",
      "label":"testing",
      "id":1,
      "key":1,
      "children":[
         {
            "title":"Preamble",
            "label":"Preamble",
            "id":2,
            "key":2
         }
      ]
   }
]

I den här är etiketten en kopia av titeln och nyckeln en kopia av id.

eller detta:

[
   {
      "label":"testing",
      "key":1,
      "children":[
         {
            "label":"Preamble",
            "key":2
         }
      ]
   }
]

i den här har titeln bytts ut till etikett och id till nyckel.

Trädstrukturen kan ha många noder/barn.

Svar #1

Du skulle kunna använda en kartläggningsfunktion som också kartlägger barnen.

const
    newStructure = ({ title, label = title, id, key = id, children }) => ({
        title, label, id, key,
        ...(children && { children: children.map(newStructure) })
    }),
    data = [{ title: "testing", id: 1, children: [{ title: "Preamble", id: 2 }] }],
    result = data.map(newStructure);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }