Группировка строки объекта с использованием include () - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть объект. Это выглядит ниже:

var records = ["test1 name1", "test2 name2", "test1 name3", "test1 name4"];

Я хотел бы сгруппировать эти данные по групповому полю и получить этот объект:

var obj = [["test1 name1", "test1 name3", "test1 name4"], ["test2 name2"]];

Как сгруппировать мой строковый объект, используя includes() в тестовое слово?

1 Ответ

0 голосов
/ 19 апреля 2020

Как только вы используете .split(), вы можете ссылаться на первый элемент возвращаемого массива, который вы можете использовать для группировки строк в подмассивы.

Использование .reduce() и .find():

const records = ["test1 name1", "test2 name2", "test1 name3", "test1 name4"];

const result = records.reduce((a, c) => {
  const found = a.find(e => e[0].split(' ')[0] === c.split(' ')[0]);
  
  if (found) found.push(c);
  else a.push([c]);

  return a;
}, []);

console.log(result);

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...