Перейти к содержимому

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

  • автор:

Array.prototype.join()

Метод join() объединяет все элементы массива (или массивоподобного объекта) в строку.

Интерактивный пример

Синтаксис

arr.join([separator])

Параметры

separator Необязательный

Определяет строку, разделяющую элементы массива. В случае необходимости тип разделителя приводится к типу Строка. Если он не задан, элементы массива разделяются запятой ‘,‘. Если разделитель — пустая строка, элементы массива ничем не разделяются в возвращаемой строке.

Возвращаемое значение

Строка, содержащая все элементы массива. Если arr.length == 0 , то будет возвращена пустая строка.

Описание

Преобразует все элементы массива в строки и объединяет их в одну большую строку. Элемент массива с типом undefined или null преобразуется в пустую строку.

Примеры

Соединение массива четырьмя различными способами

В следующем примере создаётся массив a с тремя элементами, затем они четыре раза объединяются в строку: с использованием разделителя по умолчанию, запятой с пробелом, плюса, окружённого пробелами, и пустой строки.

var a = ["Ветер", "Дождь", "Огонь"]; var myVar1 = a.join(); // присвоит 'Ветер,Дождь,Огонь' переменной myVar1 var myVar2 = a.join(", "); // присвоит 'Ветер, Дождь, Огонь' переменной myVar2 var myVar3 = a.join(" + "); // присвоит 'Ветер + Дождь + Огонь' переменной myVar3 var myVar4 = a.join(""); // присвоит 'ВетерДождьОгонь' переменной myVar4 

Соединение элементов массивоподобного объекта

В следующем примере соединяется массивоподобный объект (в данном случае список аргументов функции) с использованием вызова Function.prototype.call для Array.prototype.join .

function f(a, b, c)  var s = Array.prototype.join.call(arguments); console.log(s); // '1,a,true' > f(1, "a", true); 

Спецификации

Specification
ECMAScript Language Specification
# sec-array.prototype.join

Совместимость с браузерами

BCD tables only load in the browser

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

  • String.prototype.split()
  • Array.prototype.toString()
  • TypedArray.prototype.join()

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 4 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

Метод 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 ,
    выполняющие проверку массива

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

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

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

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

Решения вопроса 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

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

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

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

const numbers = [1, 2, 3, 4]; const sumOfNumbers = numbers.reduce((acc, number) => acc + number, 0); console.log(sumOfNumbers); // => 10 

27 октября 2022

Немного улучшу reduce .

 acc + number); 

А за такое использование map могут и побить. Если уж и хочется из цикла что-то менять снаружи (что почти всегда плохая идея), то для этого используют forEach . Map возвращает значение, которое должно быть использовано. И map не должен менять ничего извне. Иначе код становится сложноподдерживаемым.

19 октября 2022

Помимо стандартного перебора значений и красивого метода reduce(), можно воспользоваться функцией высшего порядка map:

const numbers = [1, 2, 3]; let sum = 0; numbers.map((item) => sum += item); console.log(sum); // => 6 

И для любителей библиотеки Lodash доступен метод _.sum():

const numbers = [1, 2, 3]; console.log(_.sum(numbers)); // => 6 

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

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