Ánh xạ các chữ số sang bảng chữ cái trên các điện thoại phím cũ thường như sau:
const mapping = {
1: [],
2: ['a', 'b', 'c'],
3: ['d', 'e', 'f'],
4: ['g', 'h', 'i'],
5: ['j', 'k', 'l'],
6: ['m', 'n', 'o'],
7: ['p', 'q', 'r', 's'],
8: ['t', 'u', 'v'],
9: ['w', 'x', 'y', 'z']
};
Chúng ta cần viết một hàm JavaScript nhận một chuỗi chữ cái và trả về tổ hợp số được nhấn để gõ chuỗi đó.
Ví dụ –
Nếu chuỗi chữ cái là:
const str = 'mad';
Thì số đầu ra nên là:
const output = [6, 2, 3];
Ví dụ
Mã thực hiện:
const mapping = {
1: [], 2: ['a','b','c'], 3: ['d','e','f'],
4: ['g','h','i'], 5: ['j','k','l'], 6: ['m','n','o'],
7: ['p','q','r','s'], 8: ['t','u','v'], 9: ['w','x','y','z']
};
const convertToNumeral = (str = '') => {
const entries = Object.entries(mapping);
const res = entries.reduce((acc, [v, letters]) => {
letters.forEach(l => acc[l] = +v);
return acc;
}, {});
const result = Array.from(str, (el) => { return res[el]; });
return result;
};
console.log(convertToNumeral('mad'))
Kết quả
Kết quả trong console:
[ 6, 2, 3 ]