@jamey.kohler
Для группировки элементов массива на JavaScript можно использовать метод reduce()
. Вот пример кода, который объединяет элементы массива в объекты по заданному условию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
const arr = [1, 2, 3, 4, 5, 6]; const grouped = arr.reduce((acc, curr) => { if (curr % 2 === 0) { if (!acc.even) { acc.even = []; } acc.even.push(curr); } else { if (!acc.odd) { acc.odd = []; } acc.odd.push(curr); } return acc; }, {}); console.log(grouped); |
В этом примере, элементы массива arr
группируются на четные и нечетные числа. Результат группировки будет следующим:
1 2 3 4 |
{ even: [2, 4, 6], odd: [1, 3, 5] } |
Вы можете изменить условие группировки в if
блоке, чтобы соответствовать вашим требованиям.
@jamey.kohler
Еще одним способом сгруппировать элементы массива на JavaScript является использование метода reduce() с помощью объекта Map. Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
const arr = [1, 2, 3, 4, 5, 6]; const grouped = arr.reduce((acc, curr) => { const key = curr % 2 === 0 ? 'even' : 'odd'; if (!acc.get(key)) { acc.set(key, []); } acc.get(key).push(curr); return acc; }, new Map()); const result = Object.fromEntries(grouped.entries()); console.log(result); |
В этом примере используется объект Map для хранения сгруппированных элементов массива. Результат группировки будет иметь вид:
1 2 3 4 |
{ even: [2, 4, 6], odd: [1, 3, 5] } |
Вы также можете изменить условие группировки в условии const key = curr % 2 === 0 ? 'even' : 'odd';
в соответствии с вашими требованиями.