Разбиение массива на 3 столбца с помощью JS
Учитывая неизвестный массив целых чисел неизвестной длины, значения которых также неизвестны, как я могу организовать их в три столбца, чтобы сумма самой левой группы была наибольшей, средняя - второй по величине, а третья - наименьшей группы как можно ближе по размеру.
Фактическая цель здесь - организовать <ul>
элементы по размеру (# из <li>
элементы, которые они содержат) в три столбца. Я ищу ответ в javascript, но если кто-то сможет объяснить логику достаточно просто, этого будет достаточно:)
Таким образом, другими словами, дан массив, такой как...
var set = [1, 1, 4, 6, 7, 10, 3, 6]
Будет организован как...
var left = [10, 4]
var middle = [6, 7]
var right = [3, 6, 1, 1]
Есть и другие возможности. Первый столбец суммирует до 14, но это может быть результатом различных комбинаций, таких как [6, 4, 3, 1]
, Такая организация затруднит получение правильных значений для следующего столбца, поэтому желательно использовать самые большие числа ранее, как в моем примере выше. *
Я уверен, что об этом уже спрашивали и отвечали, но я не знал, как это найти. Я провел некоторое исследование и выяснил, что это в значительной степени проблема разделения, хотя я все еще не знаю, как это сделать, или есть ли здесь простой ответ. Все, что работает для простого примера, который я привел, должно быть достаточно.
* РЕДАКТИРОВАТЬ: Если подумать, это может быть неверное предположение.