@architawr
"Ok, Google" и все твои проблемы решены

Сложение элементов массива с условием?

Здравствуйте, тостеровчане, выручайте, уже полчаса голову ломаю!
Мне необходимо складывать элементы массива до того, как сумма будет равна нулю (это гарантируется) + нужно запомнить на каком элементе массива сложение закончилось. Никак не могу ничего придумать. Вот массив с числами:
var numbers = [1,-3,5,-6,-10,13,4,-8];
Если сложить все числа по порядку, то при прибавлении 13 сумма равна 0 => дальше считать не нужно и необходимо "запомнить" индекс числа 13 ( в данном примере ). Заранее спасибо!
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
var numbers = [1,-3,5,-6,-10,13,4,-8];

var arr = numbers.slice(), sum = 0;
while((sum += arr.shift()) !== 0); // изысканный пустой while !
var index = numbers.length - arr.length - 1;  // 5


Или с рекурсией:
function sum0(arr, idx = 0, sum = 0) {
  if ((sum += numbers[idx]) === 0) return idx;
  return sum0(arr, idx + 1, sum);
}

sum0([1,-3,5,-6,-10,13,4,-8])  // 5
Ответ написан
dollar
@dollar
Делай добро и бросай его в воду.
var numbers = [1,-3,5,-6,-10,13,4,-8];
var sum = 0;
var index = false;
for (let i=0; i<numbers.length; i++) {
   sum += numbers[i];
   if (sum == 0) { index = i; break; }
}
console.log(index); // 5
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы