//var initialData = [1, 9, 4, 95, -3, 51, 6, 9, 4, 4,-9, 88, 27];
var initialData = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2];
var wayFirst = function(data) {
var sum = 0;
data.forEach( (value) => {sum = sum + value} )
return sum;
}
var waySecond = function(data) {
var sum = 0;
data.forEach( (value, i) => {
i % 2 === 0 ? sum = sum + value : false
})
return sum;
}
var wayThird = function(data) {
var sum = 0;
var iTemp = 0
data.forEach( (value, i) => {
if (!iTemp || iTemp + 4 === i) {
sum = sum + value;
iTemp === 0 ? iTemp = 1 : iTemp = i;
}
})
return sum;
}
console.log(wayFirst(initialData));
console.log(waySecond(initialData))
console.log(wayThird(initialData))
сделал через forEach но через reduce было бы немного компактнее
или если надо получать не значения а засумированные элементы с интервалом
const initialData = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
let sumArrayWithInterval = (data, interval) => {
const sumWithIntervel = [];
let next = 0;
data.forEach((value, i) => {
if (next === i) {
const valueIndex = interval === 1 ? 1 + i : interval + 1 + i;
data[valueIndex] ? sumWithIntervel.push(value + data[valueIndex]) : false
interval === 1 ? next = i + interval + 1 : next = valueIndex + 1
}
})
return sumWithIntervel;
}
console.log(
sumArrayWithInterval(initialData, 1)
);
console.log(
sumArrayWithInterval(
sumArrayWithInterval(initialData, 1)
, 2)
);
console.log(
sumArrayWithInterval(
sumArrayWithInterval(
sumArrayWithInterval(initialData, 1)
, 2)
, 4)
);