Как сложить элементы массива js
Перейти к содержимому

Как сложить элементы массива js

  • автор:

Сложить элементы в массиве JavaScript?

Я не понимаю, здесь подразумевалось что можно править код функции или ее нужно вызвать как-то хитро? К тому же у нее нет return. Как с ней обращаться?

  • Вопрос задан более трёх лет назад
  • 7532 просмотра

Комментировать

Решения вопроса 1

crazy_leo

Frontend Developer

Надо хитрым образом подсчитать, а на счет правки, скорее всего это ошибка автора данного сайта

var list = [1, 2, 3, 4, 5, 6]; function sum() < var sum = 0; for (i=0; ireturn sum > sum.apply(null, list) // output => 21

Ответ написан более трёх лет назад

Метод reduce

Метод reduce сворачивает массив к одному значению (редуцирует). К примеру, с помощью этого метода можно легко найти сумму элементов массива (то есть массив сведется к одному значению — к сумме элементов).

Первым параметром метод reduce получает функцию, которая последовательно выполнится для каждого элемента массива, начиная с первого. В эту функцию можно передавать 4 параметра. Если эти параметры есть (они не обязательны), то в первый автоматически попадет , во второй попадет элемент массива, в третий — его номер в массиве (индекс), а в четвертый — сам массив.

Промежуточный результат — это переменная, в которой будет накапливаться то значение, которое вернет метод reduce , когда переберет все элементы массива. К примеру, туда последовательно можно накапливать сумму элементов массива: сначала положить первый элемент, при следующем проходе цикла уже сумму первого элемента и второго, при следующем проходе — сумму первого, второго и третьего. И так, пока массив не закончится. Функция, которую принимает reduce , должна возвращать новое значение промежуточного результата.

Вторым параметром метода reduce указывается начальное значение промежуточного результата. Если его не указать, то оно будет равно первому элементу массива, а обработка элементов начнется со второго элемента.

Синтаксис

массив.reduce(function(промежуточный результат, элемент, индекс, массив) < return новый промежуточный результат; >, начальное значение);

Пример

Найдем сумму элементов массива:

let arr = [1, 2, 3, 4, 5, 6]; let res = arr.reduce(function(sum, elem) < return sum + elem; >, 0); console.log(res);

Результат выполнения кода:

Пример

Давайте найдем сумму всех положительных чисел массива:

let arr = [1, -2, -3, 4, 5, -6]; let res = arr.reduce(function(sum, elem) < if (elem >= 0) < return sum + elem; >else < return sum; >>); console.log(res);

Результат выполнения кода:

Смотрите также

  • метод reduceRight ,
    выполняющий похожую операцию
  • метод filter ,
    который позволяет фильтровать элементы массива
  • методы map и forEach ,
    которые позволяют применить функцию к каждому элементу массива
  • методы some и every ,
    выполняющие проверку массива

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *