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

หาผลรวมตัวเลขในสตริง - JavaScript

สแกนสตริงหาตัวเลข 1 หลัก (0-9) แล้วหาผลรวมทั้งหมด

ตัวอย่างโค้ด

const str = 'gdf5jhhj3hbj4hbj3jbb4bbjj3jb5bjjb5bj3';

const sumStringNum = str => {
  const strArr = str.split('');
  let res = 0;
  for (let i = 0; i < strArr.length; i++) {
    if (+strArr[i]) {
      res += +strArr[i];
    }
  }
  return res;
};

console.log(sumStringNum(str));

ผลลัพธ์

35

วิธีแบบ Regex (สั้นกว่า)

const sumStringNum = str => 
  (str.match(/\d/g) || []).reduce((sum, d) => sum + +d, 0);

// หรือ
const sumStringNum = str => 
  [...str].filter(c => /\d/.test(c)).reduce((a, b) => a + +b, 0);

match(/\d/g) หาตัวเลขทั้งหมดในสตริง || []