Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

บังคับให้ JavaScript ทำคณิตศาสตร์แทนการต่อสตริง

สมมติว่าเรามีอาร์เรย์ของสตริง โดยพื้นฐานเป็นอาร์เรย์ของตัวเลขในรูปสตริงแบบนี้:

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