Как насчет суммирования обеих конечностей?Это сократит время пополам.Вот так:
1, 2, 3, 4, 5, 6, 7, 8;сумма = 0
2, 3, 4, 5, 6, 7;сумма = 10
3, 4, 5, 6;сумма = 19
4, 5;сумма = 28
сумма = 37
Один алгоритм может быть:
function sum_array(arr){
let sum = 0,
length = arr.length,
half = Math.floor(length/2)
for (i = 0; i < half; i++) {
sum += arr[i] + arr[length - 1 - i]
}
if (length%2){
sum += arr[half]
}
return sum
}
Он работает быстрее, когда я тестирую его в браузере с performance.now()
.Я думаю, что это лучший способ.Что вы, ребята, думаете?