Я пытаюсь разбить одномерный массив на двумерный, где под-массивы имеют разную длину. Эта дисперсия должна следовать гауссовой кривой [или форме насыпи]. Итак, скажем, переменная 2D-массива называется gaussianCurve. Массив в gaussianCurve [0] & gaussianCurve [n] будет иметь длину 1, а gaussianCurve [n / 2] будет максимумом, предоставленным параметром "maxArrayLength". Это заставляет число индексов gaussianCurve стать переменными.
Скажите, что у меня есть следующий псевдо-код:
function (oneDimentionalArray, maxArrayLength) {
// oneDimentionalArray is ["A","B","C","D","E","F","G","H","I","J","K"]
// maxArrayLength is 5
// Currently working like this (i.e. "batches"):
// return [["A","B","C","D","E"],["F","G","H","I","J"],["K"]]
// would LIKE it to work like this
gaussianCurve = []
gaussianCurve.push(["A"])
gaussianCurve.push(["B", "C"])
gaussianCurve.push(["D", "E", "F", "G", "H"])
gaussianCurve.push(["I", "J"])
gaussianCurve.push(["K"])
return gaussianCurve
}
Зачем мне такая вещь? Прогресс-бары.
- Они не показывают, что я делаю успехи немедленно
- Это связано с тем, что первое задание должно быть выполнено до того, как планка сможет двигаться
- Они замедляются на 95% +, а иногда даже держатся на 100%
- Просто раздражает
Любые предложения приветствуются. Я просто не вижу ответа в уме.
РЕДАКТИРОВАТЬ: я чувствую, что это было плохо сформулировано, поэтому я переписываю его.
... gaussianCurve [0] .length & gaussianCurve [gaussianCurve.length - 1] .length будет 1, а gaussianCurve [gaussianCurve.length / 2] .length будет до "maxArrayLength".
ВХОД:
function gaussianRefactor(["A","B","C","D","E","F","G","H","I","J","K"], 1)
function gaussianRefactor(["A","B","C","D","E","F","G","H","I","J","K"], 2)
function gaussianRefactor(["A","B","C","D","E","F","G","H","I","J","K"], 4)
function gaussianRefactor(["A","B","C","D","E","F","G","H","I","J","K"], 8)
function gaussianRefactor(["A","B","C","D","E","F","G","H","I","J","K"], 16)
ВЫВОД:
[["A"],["B"],["C"],["D"],["E"],["F"],["G"],["H"],["I"],["J"],["K"]]
[["A"],["B","C"],["D","E"],["F","G"],["H","I"],["J"],["K"]]
[["A"],["B","C","D"],["E","F","G","H"],["I","J","K"]]
[["A"],["B","C","D","E","F","G","H","I"],["J","K"]]
[["A","B","C","D","E","F","G","H","I","J","K"]]
Никакой внутренний массив не может превышать длину maxArrayLength