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

时间:2018-09-11 17:48:18

标签: javascript arrays multidimensional-array

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

1 个答案:

答案 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; }