เราจำเป็นต้องสร้างฟังก์ชันที่ให้อาร์เรย์ของตัวเลขและสตริงที่สามารถรับค่า "คี่" หรือ "คู่" ได้ทั้งสองค่า ให้บวกตัวเลขที่ตรงกับเงื่อนไขนั้น หาก novalues ตรงกับเงื่อนไข ควรส่งคืน 0
ตัวอย่างเช่น −
console.log(conditionalSum([1, 2, 3, 4, 5], "even")); => 6 console.log(conditionalSum([1, 2, 3, 4, 5], "odd")); => 9 console.log(conditionalSum([13, 88, 12, 44, 99], "even")); => 144 console.log(conditionalSum([], "odd")); => 0
เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กันดีกว่า เราจะใช้เมธอด Array.prototype.reduce() ที่นี่ -
ตัวอย่าง
const conditionalSum = (arr, condition) => {
const add = (num1, num2) => {
if(condition === 'even' && num2 % 2 === 0){
return num1 + num2;
}
if(condition === 'odd' && num2 % 2 === 1){
return num1 + num2;
};
return num1;
}
return arr.reduce((acc, val) => add(acc, val), 0);
}
console.log(conditionalSum([1, 2, 3, 4, 5], "even"));
console.log(conditionalSum([1, 2, 3, 4, 5], "odd"));
console.log(conditionalSum([13, 88, 12, 44, 99], "even"));
console.log(conditionalSum([], "odd")); ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
6 9 144 0