Существует ли краткий способ достижения того же результата, что и ниже, но:
- без мутации
- без итерации по входному массиву более одного раза
- использование Ramda (желательно)
Я думал об использовании Reduce для обновления объекта-накопителя, содержащего пропущенные / ошибочные массивы, но я не уверен, что была более умная / менее подробная опция
const predicate = i => i % 2 === 0;
const predicatePassed = [];
const predicateFailed = [];
[1, 2, 3, 4].forEach(i => predicate(i) ? predicatePassed.push(i) : predicateFailed.push(i))
// predicatePassed === [2, 4]
// predicateFailed === [1, 3]