เราต้องเขียนฟังก์ชัน เช่น calculator() ที่รับตัวอักษร 4 ตัว (+, -, *, /) เป็นอาร์กิวเมนต์แรก และตัวเลขจำนวนไม่จำกัดหลังจากนั้น หน้าที่ของเราคือดำเนินการที่ระบุเป็นอาร์กิวเมนต์แรกเหนือตัวเลขเหล่านั้นและคืนค่าผลลัพธ์
ถ้าการดำเนินการเป็นคูณหรือบวก เราต้องดำเนินการเดียวกันกับทุกองค์ประกอบ แต่ถ้าเป็นลบหรือหาร เราต้องพิจารณาองค์ประกอบแรกเป็นค่ากลางและลบองค์ประกอบอื่นทั้งหมดออกจากมัน หรือหารมันด้วยองค์ประกอบอื่นทั้งหมด ตามการดำเนินการ
ดังนั้น มาเขียนโค้ดสำหรับฟังก์ชันนี้
ตัวอย่าง
const calculator = (operation, ...numbers) => { const legend = '+-*/'; const ind = legend.indexOf(operation); return numbers.reduce((acc, val) => { switch(operation){ case '+': return acc+val; case '-': return acc-val; case '*': return acc*val; case '/': return acc/val; }; }); }; console.log(calculator('+', 12, 45, 21, 12, 6)); console.log(calculator('-', 89, 45, 21, 12, 6)); console.log(calculator('*', 12, 45, 21, 12, 6)); console.log(calculator('/', 189000, 45, 7, 12, 4));ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้
96 5 816480 12.5