เราต้องสร้างฟังก์ชันที่รับอาร์เรย์ตัวเลขและสตริงที่สามารถรับค่าได้สองค่าคือ "odd" หรือ "even" แล้วบวกตัวเลขที่ตรงกับเงื่อนไขนั้น ถ้าไม่มีค่าไหนตรงเงื่อนไข ให้คืนค่า 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