Разбить массив чисел на 9 массивов - PullRequest
0 голосов
/ 02 мая 2020

У меня есть массив, такой как:

[ 3, 6, 12, 16, 26, 36, 37, 42, 54, 59, 61, 68, 71, 83, 88 ]

Я хотел бы разбить на 9 различных массивов на основе диапазонов 1-9, 10-19, 20-29, 30- 39, 40-49, 50-59, 60-69, 70-79, 80-90.

Точно так же, как карта 1-90 go будет установлена.

Каков наилучший способ сделать это с Javascript?

1 Ответ

2 голосов
/ 02 мая 2020

Вы можете взять значение деления на 10 в качестве индекса и собрать значения. Чтобы не добавлять 90 в новый слот, вы можете взять как минимум индекс и настроить индекс.

var array = [3, 6, 12, 16, 26, 36, 37, 42, 54, 59, 61, 68, 71, 83, 88, 90],
    result = array.reduce(
        (r, v) => (r[Math.min(8, Math.floor(v / 10))].push(v), r),
        Array.from({ length: 9 }, _ => [])
    );

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...