JavaScript中有函数可以转换数组结构吗?

Is there any function in JavaScript to convert an array structure?

我有一个这样的数组:

    Array
(
    [0] => [
        "column1"=> 1,
        "column2"=> "a",
        ],
    [1] => [
        "column1"=> 2,
        "column2"=> "b",
        ],
    [2] => [
        "column1"=> 3,
        "column2"=> "c",
        ],
    [3] => [
        "column1"=> 4,
        "column2"=> "d",
        ],
    [4] => [
        "column1"=> 5,
        "column2"=> "e",
        ],
)

我想这样转换-

    Array
(
    [column1] => [
        "0"=> 1,
        "1"=> 2,
        "2"=> 3,
        "3"=> 4,
        "4"=> 5,
        ],
    [column2] => [
        "0"=> "a",
        "1"=> "b",
        "2"=> "c",
        "3"=> "d",
        "4"=> "e",
        ]
)

在我的应用程序中,我使用 Vuetify 作为前端。我必须将数组(如上)转换为前端。我做了一个简短的数组示例。任何人都可以建议一些好的 ideas/solutions 使用 Javascript 来做到这一点吗? 提前致谢。

一个简单的reduce就可以完成这项工作:

const arr = [
  {"column1": 1, "column2": "a"},
  {"column1": 3, "column2": "b"}
];

const result = arr.reduce((acc, cur) => {
  for (const entry of Object.entries(cur)) {
    const [key, value] = entry;
    acc[key] = acc[key] || [];
    acc[key] = [...acc[key], value];
  }
  return acc;
} , {});

console.log(result);

您可以对数组使用 reduce 方法。

const arr = [
  [1, "a"],
  [2, "b"],
  [3, "c"],
  [4, "d"],
  [5, "e"],
];

console.log(
  arr.reduce((res, [o, t]) => (res[0].push(o), res[1].push(t), res), [[], []])
);