Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

แมปตัวเลขกับอักขระใน JavaScript


สมมติว่าเรามีตัวเลข 12145 เราต้องเขียนฟังก์ชันที่จับคู่ตัวเลขของตัวเลขกับตัวอักษรภาษาอังกฤษตามบรรทัดฐานต่อไปนี้ ตัวอักษรจะต้องถูกจับคู่ตามดัชนีแบบ 1 เช่น 'a' สำหรับ 1 และ 'b' สำหรับ 2 'c' สำหรับ 3 เป็นต้น

การทำแผนที่ตัวเลขสามารถทำได้หลายวิธี ลองใช้ตัวเลขด้านบน 121415 เป็นตัวอย่าง

สามารถแมปเป็น −

12145->1,2,1,4,5->a,b,a,d,e

นอกจากนี้ยังสามารถ −

12145->12,1,4,5->l,a,d,e

นอกจากนี้ยังสามารถ −

12145->12,14,5->l,n,e

และอื่นๆ แต่ 12145 ไม่สามารถเป็น 1,2,1,45 ได้ เนื่องจากไม่มีการแมปสำหรับ 45 ตัวอักษร ดังนั้น ฟังก์ชันของเราจึงควรส่งคืนอาร์เรย์ของการเรียงสับเปลี่ยนของการแมปตัวอักษรทั้งหมด

รหัสสำหรับสิ่งนี้จะเป็น −

ตัวอย่าง

const num = 12145;
const mapToAlphabets = num => {
   const numStr = '' + num;
   let res = [];
   const shoveElements = (left, right) => {
      if (!left.length) {
         res.push(right.map(el => {
            return (+el + 9).toString(36);
         }).join(''));
         return;
      };
      if(+left[0] > 0){
         shoveElements(left.slice(1), right.concat(left[0]));
      };
      if(left.length >= 2 && +(left.slice(0, 2)) <= 26){
         shoveElements(left.slice(2), right.concat(left.slice(0, 2)));
      };
   };
   shoveElements(numStr, []);
   return res;
}
console.log(mapToAlphabets(num));

ผลลัพธ์

เอาต์พุตในคอนโซล −

[ 'abade', 'abne', 'aude', 'lade', 'lne' ]