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

สร้าง Object นับจำนวนตัวเลขจากสตริง - JavaScript

นับจำนวนครั้งที่แต่ละตัวเลข (0-9) ปรากฏในสตริง คืนค่าเป็น Object

ตัวอย่าง

'11222233344444445666'
→ { '1': 2, '2': 4, '3': 3, '4': 7, '5': 1, '6': 3 }

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

const mapString = str => {
  const map = {};
  for (const char of str) {
    map[char] = (map[char] || 0) + 1;
  }
  return map;
};

console.log(mapString('11222233344444445666'));

ผลลัพธ์

{ '1': 2, '2': 4, '3': 3, '4': 7, '5': 1, '6': 3 }

วิธีแบบ Reduce

const mapString = str => 
  [...str].reduce((acc, char) => {
    acc[char] = (acc[char] || 0) + 1;
    return acc;
  }, {});

กรองเฉพาะตัวเลข

const mapDigits = str => 
  [...str].filter(c => /\d/.test(c))
         .reduce((acc, c) => (acc[c] = (acc[c] || 0) + 1, acc), {});