我有一个二维数组,其中包含一个人的姓名,电子邮件和年龄。我可以将阵列分为多个阵列,按人的年龄分组。例如:如果输入数组有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做到这一点的最佳方法是什么?
答案 0 :(得分:0)
您可以使用.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; }