Javascript - 基于值的二维数组拆分



我有一个2D数组,上面有一个人的姓名,电子邮件和年龄。我可以将数组拆分为按人的年龄分组的多个数组吗?例如:如果输入数组有 5 个值 -

[Name1, name1@test.com, 21], [Name2, name2@test.com, 22], [Name3, name3@test.com, 22], [Name4, name4@test.com, 22], [Name5, name5@test.com, 21]

我想要的输出是两个数组,一个是 22 岁的名称和电子邮件,另一个是 21 岁的。

在javascript中做到这一点的最佳方法是什么?

您可以使用.reduce()创建一个对象,该对象以年龄作为键,值作为数组,并将相应的名称和电子邮件地址作为数组项:

let data = [['Name1', 'name1@test.com', 21], ['Name2', 'name2@test.com', 22], ['Name3', 'name3@test.com', 22], ['Name4', 'name4@test.com', 22], ['Name5', 'name5@test.com', 21]];
let result = data.reduce((a, c) => {
let [name, email, age] = c;
a[age] = a[age] || [];
a[age].push([name, email]);
return a;
}, {});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新