สมมติว่าเรามีอาร์เรย์ของสตริง โดยพื้นฐานเป็นอาร์เรย์ของตัวเลขในรูปสตริงแบบนี้:
const arr = ['3', '3', '55', '23', '67', '43', '12', '67', '87', '12'];
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์แบบนี้หนึ่งและคืนค่าผลรวมของทุกองค์ประกอบแทนการต่อสตริงเข้าด้วยกัน
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน:
ตัวอย่างโค้ด
const arr = ['3', '3', '55', '23', '67', '43', '12', '67', '87', '12'];
const sumString = arr => {
const num = arr.reduce((acc, val) => {
const sum = acc + (+val || 0);
return sum;
}, 0);
return num;
};
console.log(sumString(arr));
Unary (+) operator หน้าสตริงใดๆ บังคับการแปลงชนิดข้อมูล (type coercion) จาก String เป็น Number โดยตรง ถ้าตัวอักษรแรกของสตริงไม่ใช่ตัวเลขที่ถูกต้อง จะคืน NaN มิฉะนั้นคืนตัวเลขที่ถูกต้อง
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
372