Парни, у меня есть массив, в котором заданы страны и их население. Как мне вывести сумму населения во всех странах?
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}
];
Решить можно рядом различных способов. Наверное наиболее “изящный” способ это воспользоваться методом свертки массива https://learn.javascript.ru/array-iteration#reduce-reduceright. Если редьюс покажется сложным в понимании то можешь взять метод перебора массива forEach или просто перебрать массив в цикле for. Для этого тебе сначала понадобится создать пустую переменную куда ты будешь накапливать сумму на каждой итерации цикла, в итоге у тебя в переменной будет эта сумма.
Ты представляешь как найти сумму элементов массива если эти элементы просто числа? Покажи код, если понимаешь.
Можно с помощью метода reduce
Та сумму элементов массива нати не сложно. А вот как сделать это задание я не знаю.
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);
Ну вот элементарное нахождение суммы элементов массива.
Мне бы кто помог сделать это задание. Ну или показал как делать на примере
А такое на мысли наводит?
// 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);
А, все, сделал) Спасибо большое)
А reduce
о котором говорят выше это еще один способ описать тоже что ты описываешь в цикле: аккумулирование значения в переменной.
var arr = [3, 2, 5, 6];
function arraySum(array) {
return array.reduce(function (sum, arrayItem) {
return sum + arrayItem
}, 0)
}
arraySum(arr);