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), [[], []])
);
我有一个这样的数组:
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), [[], []])
);