@VtzzzZZ

Как реализовать выборку нужных элементов с помещением их во вновь создаваемые массивы?

Есть массив неких элементов и пустой массив
let result = [] ;
let arr = [el1,el2,el3...,eln]


Каждый из элементов проверяется на соответсвие какому-то условию
Когда впервые попадается элемент который этому условию соответствует , то создается массив .
В этот массив добавляется элемент , проверка идет дальше .

Если следующий элемент соответствует условию , то он добавляется в тот же массив
Если следующий элемент не соответствует условию , то массив 'закрывается' - в него не будет ничего добавляться

Проверка идет дальше . Вновь нашли нужный элемент ? Опять создали массив и т.д
Т.е результат будет представлять собой примерно такую выборку массивов :

[[el2,el3],[el5]...[eln,...,eln+m]]
Вроде не сложно , а сообразить не могу , ступор . Помогите , спасибо !
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const result = arr.reduce((acc, n, i) => {
  if (здесь вы проверяете элемент массива на соответствие своему условию) {
    let group = acc[acc.length - 1];
    if (!group || group.index !== i - 1) {
      group = { data: [] };
      acc.push(group);
    }

    group.index = i;
    group.data.push(n);
  }

  return acc;
}, []).map(n => n.data);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы