如何扁平化对象内部的数组?

时间:2019-07-17 15:40:55

标签: javascript arrays json object flatten

基本上,我想使用Javascript(最好是ES6)将对象内部的数组展平。我实际上不确定这是否是个扁平化的问题,我只是想要一种进行此更改的好方法。

我想从这里出发:

{
  id: "123",
  name: "test",
  history: [
    {
      id: "456",
      name: "test2"
    },
    {
      id: "789",
      name: "test3"
    }
  ]
}

对此...

{
  id: "123",
  name: "test"
},
{
  id: "456",
  name: "test2"
},
{
  id: "789",
  name: "test3"
}

基本上,在原始对象中,我具有与该特定对象相关的“历史”属性。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用解构和rest语法来分隔历史记录和第一个对象,然后将它们组合为具有spread或concat的单个数组。

const { history, ...obj1 } = {"id":"123","name":"test","history":[{"id":"456","name":"test2"},{"id":"789","name":"test3"}]}

const result = [obj1, ...history]

console.log(result)

答案 1 :(得分:2)

尝试一下:

 const data =  {
  "id": "123",
  "name": "test",
  "history": [
    {
      "id": "456",
      "name": "test2"
    },
    {
      "id": "789",
      "name": "test3"
    }
  ]
}

const  {id, name, history} =  data ;
const result  = [{id, name} , ...history];

console.log(result);