Javascript - 2d разбиение массива на основе значения - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть двумерный массив с именем, адресом электронной почты и возрастом человека. Можно ли разбить массив на несколько массивов, сгруппированных по возрасту человека. Например: если входной массив имеет 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 голосов
/ 11 сентября 2018

Вы можете использовать .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; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...