how to convert one multArray to one simpleArray javascript



I have this situation in my application, one array with multiple arrays inside:

multArray

i need to convert this:

[
  {
    "tag": [
      {
        "key": "asdasd",
        "label": "asdasd"
      },
      {
        "key": "ddd",
        "label": "ddd"
      },
      {
        "key": "dwd",
        "label": "dwd"
      }
    ]
  },
  {
    "tag": [
      {
        "key": "wdwd",
        "label": "wdwd"
      },
      {
        "key": "",
        "label": ""
      },
      {
        "key": "dwdw",
        "label": "dwdw"
      },
    ]
  }
]

to one single array like:

[
 0: {key: "...",label: "...."}
 1: {key: "...",label: "...."}
 2: {key: "...",label: "...."}
 .....
]

It’s a react web application, so it need to be in javascript solution.

Answer

Use Array.flatMap:

const result = data.flatMap(obj => obj.tag);

const data = [{
    "tag": [{
        "key": "asdasd",
        "label": "asdasd"
      },
      {
        "key": "ddd",
        "label": "ddd"
      },
      {
        "key": "dwd",
        "label": "dwd"
      }
    ]
  },
  {
    "tag": [{
        "key": "wdwd",
        "label": "wdwd"
      },
      {
        "key": "",
        "label": ""
      },
      {
        "key": "dwdw",
        "label": "dwdw"
      },
    ]
  }
];

const result = data.flatMap(obj => obj.tag);
console.log(result);


Source: stackoverflow