นับจำนวนครั้งที่แต่ละตัวเลข (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), {});