Łączenie tablic w obiekt

0

Hej mam problem jak połączyć tablice w jeden obiekt:

Tego typu obiekt tablic połączyłem:

{
    "data": {
        "data": [
            [
                112,
                "Jan Kowalski",
                "2018-02-09",
                "2016-04-25"
            ]
        ],
        "meta": [
            "id",
            "name",
            "start",
            "end"
        ]
    }
}

i otrzymuje:

data {
 id: 112,
 name: Jan Kowalski,
 start: "2018-02-09",
 end: "2016-04-25"
}

za pomocą kodu:

const meta = {...response.data.meta};
  const data = {...response.data.data[0]};
  let replacedItems = Object.keys(data).map((key) => {
    const newKey = meta[ key ] || key;
    return {[ newKey ]: data[ key ]};
  });
  const newData = replacedItems.reduce((a, b) => Object.assign({}, a, b));
  return newData;

Ale problem teraz mam gdy w data mam wiecej tablic i kazda z tablic chciałbym podobnie jw. przedstawić.

0

Np tak:

const transform = struct =>
  struct.data.map(
    item => struct.meta.reduce(
      (acc, key, i) => ({ ...acc, [key]: item[i] }),
      {}
    )
  )

const example = {
  data: [
    [
      'foo1',
      'bar1',
    ],
    [
      'foo2',
      'bar2',
    ],
  ],
  meta: [
    'foo',
    'bar',
  ]
}

console.log(transform(example))

/* Result:
[
	{
		"foo": "foo1",
		"bar": "bar1"
	},
	{
		"foo": "foo2",
		"bar": "bar2"
	}
]
*/

CodePen: https://codepen.io/caderek/pen/GQWPVa?editors=0012

1 użytkowników online, w tym zalogowanych: 0, gości: 1