Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm số được nhấn để tạo ra từ (ngược với bài toán số điện thoại) trong JavaScript


Á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 ]