3 回答

TA貢獻1799條經驗 獲得超8個贊
您可以使用 非常簡單地完成此操作Array#reduce。
const list=[22,45,63,223,12,56,89];
let evenSum = list.reduce((acc,curr)=>acc + (curr % 2 == 0 ? curr : 0), 0);
console.log('Even sum:', evenSum);
let oddSum = list.reduce((acc,curr)=>acc + (curr % 2 == 1 ? curr : 0), 0);
console.log('Odd sum:', oddSum);
如果性能特別重要,您可以通過一次reduce操作計算兩個總和。
const list=[22,45,63,223,12,56,89];
let [evenSum, oddSum] = list.reduce((acc,curr)=>(acc[curr % 2] += curr, acc), [0, 0]);
console.log('Even sum:', evenSum);
console.log('Odd sum:', oddSum);

TA貢獻1829條經驗 獲得超7個贊
let list = [22,45,63,223,12,56,89];
let number = 0, rest = 0, result = 0;
for(let counter = 0; counter < 20; counter += 1) {
number = list[counter];
rest = number%2;
if(rest == 0) {
result += number; //here
}
}
console.log(result); //printing result

TA貢獻1813條經驗 獲得超2個贊
從技術上講,您可以循環遍歷數組,如果均勻,則將其添加到變量中,否則將其添加到不同的變量中。
list = [22, 45, 63, 223, 12, 56, 89]
evensum = 0;
oddsum = 0;
list.forEach(function(e) {
if (e % 2 == 0) {
evensum += e;
} else{
oddsum += e;
}
});
console.log(evensum, oddsum)
添加回答
舉報