Я пытаюсь найти лучший способ сгруппировать массив в несколько массивов, основываясь на какой-то операции со значениями массива ...
Например, мой массив выглядит как
var arr = [100, 200, 300, 500, 600, 700, 1000, 1100, 1200]
Мне нужносгруппировать вышеуказанный массив в разные массивы, как только разница превысит 100.
Итак, мой вывод будет выглядеть так:
var result = [[100, 200, 300], [500, 600, 700], [1000, 1100, 1200]]
Каков наилучший способ для достижения этой цели?
Я попробовал обычный цикл for, если условия проверяют разницу между следующим элементом и текущим, продолжайте помещать его в массив, а когда разница больше 100, создайте новый массив.
Я чувствую, что должен быть лучший способ сделать это.
РЕДАКТИРОВАТЬ: -
Я пробовал приведенный ниже код, он близок, но не завершен.Не тратил больше времени на это, так как я пытался получить более простую версию, используя сокращение или подчеркивание -
var result = [], temp = [], difference;
for (var i = 0; i < array.length; i += 1) {
if (difference !== (array[i + 1] - array[i])) {
if (difference !== undefined) {
result.push(temp);
temp = [];
}
difference = array[i + 1] - array[i];
}
temp.push(array[i]);
}
if (temp.length) {
result.push(temp);
}