Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm những số nào đã được nhấn để lấy từ (ngược lại với vấn đề chữ số điện thoại) trong JavaScript

Việc ánh xạ các chữ số thành bảng chữ cái trong các điện thoại loại bàn phím cũ từng giống như thế này -

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 tôi được yêu cầu viết một hàm JavaScript nhận một chuỗi bảng chữ cái và trả về tổ hợp số được nhấn để nhập chuỗi đó.

Ví dụ -

Nếu chuỗi bảng chữ cái là -

const str = 'mad';

Sau đó, số đầu ra phải là -

const output = [6, 2, 3];

Ví dụ

Mã cho điều này sẽ là -

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', 'acc', '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'))

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ 6, 2, 3 ]