Нужно добавить элементы массива [как найти сумму значений свойств объектов из массива?]


#1

Парни, у меня есть массив, в котором заданы страны и их население. Как мне вывести сумму населения во всех странах?
var array = [
{ name: ‘Ukraine’, population: 42 000 000},
{ name: ‘Belarus’, population: 9 500 000},
{ name: ‘Moldova’, population: 3 500 000},
{ name: ‘Switzerland’, population: 8 400 000}
];


#2

Решить можно рядом различных способов. Наверное наиболее “изящный” способ это воспользоваться методом свертки массива https://learn.javascript.ru/array-iteration#reduce-reduceright. Если редьюс покажется сложным в понимании то можешь взять метод перебора массива forEach или просто перебрать массив в цикле for. Для этого тебе сначала понадобится создать пустую переменную куда ты будешь накапливать сумму на каждой итерации цикла, в итоге у тебя в переменной будет эта сумма.


#3

Ты представляешь как найти сумму элементов массива если эти элементы просто числа? Покажи код, если понимаешь.


#4

Можно с помощью метода reduce


#5

Та сумму элементов массива нати не сложно. А вот как сделать это задание я не знаю.
var arr = [3,2,5,6];
function arraySum(array){
var sum = 0;
for(var i = 0; i < array.length; i++){
sum += array[i];
}
console.log(sum);
}
arraySum(arr);

Ну вот элементарное нахождение суммы элементов массива.
Мне бы кто помог сделать это задание. Ну или показал как делать на примере


#6

А такое на мысли наводит?

// var arr = [3, 2, 5, 6];
var array = [{
	name: 'Ukraine',
	population: 42000000
}, {
	name: 'Belarus',
	population: 9500000
}, {
	name: 'Moldova',
	population: 3500000
}, {
	name: 'Switzerland',
	population: 8400000
}];

function arraySum(array) {
	var sum = 0;
	for (var i = 0; i < array.length; i++) {
		console.log(array[i], array[i].population)
		// sum += array[i];
	}
	// console.log(sum);
}
arraySum(array);

#8

А, все, сделал) Спасибо большое)


#9

А reduce о котором говорят выше это еще один способ описать тоже что ты описываешь в цикле: аккумулирование значения в переменной.

var arr = [3, 2, 5, 6];

function arraySum(array) {
	return array.reduce(function (sum, arrayItem) {
		return sum + arrayItem
	}, 0)
}

arraySum(arr);