Используйте цикл for для вычисления нескольких элементов в массиве - PullRequest
3 голосов
/ 27 апреля 2019

Я новичок в JavaScript, и у меня есть упражнение о for...of, но оно не удалось.Возвращено NaN.

Где я делаю не так и что мне нужно?

Код:

var arr = [];

function multiply(arr) {
  for (var a of arr) {
    a *= arr[a];
  }
  return a;
}
console.log(multiply([2, 3, 4])); // expect: 24

1 Ответ

2 голосов
/ 27 апреля 2019

См. Ваш код, измененный ниже. Сейчас работает:

var arr = undefined;

function multiply(arr) {
  if (!arr || !arr.length) {     // if the array is undefined or has no elements, return null
      return null;
  }                              // otherwise, continue to do the calculation, it's an array with values
  var result = 1;                // start our result in 1
  for (var a of arr) {
    result *= a;                 // increase the result by multiplying the
                                 // previous value for every value in the array
  }
  return result;                 // finally return
}
console.log(multiply([2, 3, 4])); // expect: 24
console.log(multiply([]));        // expect: null: 0 elements
console.log(multiply(arr));       // expect: null: arr var is undefined
console.log(multiply());          // expect: null: no argument provided
...