Напишите функцию sum (), которая принимает массив чисел - PullRequest
0 голосов
/ 19 сентября 2018

Может кто-нибудь, пожалуйста, объясните мне, что я делаю не так здесь ... Этот код взят из красноречивого javascript, и он отлично работает

function sum(array) {
  let total = 0;
  for (let value of array) {
    total += value;
  }
  return total;
}

И это то, что я написал для упражнения, но возвращает NaN ..

function sum(numArray) { 
  let add = 0;
  for (let a = 0; a <= numArray.length; a++) {
  let addIndex = numArray[a];
    add += addIndex;
  } 
  return add;
}

Ответы [ 4 ]

0 голосов
/ 19 сентября 2018

Вы получаете за пределами допустимой ошибки.В вашем цикле for вы можете изменить его на:

for (let a = 0; a < numArray.length; a++) {

ИЛИ

for (let a = 0; a <= numArray.length - 1; a++) {

Последний тоже работает, нотруднее читать.

0 голосов
/ 19 сентября 2018

Вы просто добавляете undefined к add, потому что запускаете счетчик длинных.

for (let a = 0; a <= numArray.length; a++) {
//                 ^                         wrong, takes last index + 1

function sum(numArray) { 
  let add = 0;
  for (let a = 0; a < numArray.length; a++) {
    let Addindex = numArray[a];
    add += Addindex;
  } 
  return add;
}

console.log(sum([1, 2, 3, 4]));
0 голосов
/ 19 сентября 2018

Проблема из-за этого a <= numArray.length.Измените его на a < numArray.length.В этом случае [5], который является 6-м элементом или элементом с 5-м индексом, не определен, так как массив начинается с 0 индекса.Таким образом, он добавит undefined с ранее добавленным номером и, следовательно, будет NaN

function sum(numArray) {
  let add = 0;
  for (let a = 0; a < numArray.length; a++) {
    let Addindex = numArray[a];
    add += Addindex;
  }
  return add;
}

console.log(sum([1, 2, 3, 4, 5]))
0 голосов
/ 19 сентября 2018

Ваш цикл for выходит за пределы индексов массива.Вы должны использовать:

a < numArray.length

Вместо:

a <= numArray.length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...