Я бы предположил, что какой-то алгоритм сохранения батареи использовался по умолчанию.
тогда маркетологи ещё не совсем охренели.
for (let i = 0; i < fullBlocks; i++)
result.push(...block.map((v) => v + length * i));
но вычислений, на самом деле, только прибавится.