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

การเปลี่ยนตัวอักษรสตริงตามอาร์เรย์ใน JavaScript


สมมติว่าเรามีสตริงที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น สำหรับจุดประสงค์ของคำถามนี้ เรากำหนดให้การขยับหน่วยของตัวอักษรเป็นการแทนที่ตัวอักษรนั้นให้เป็นตัวอักษรต่อท้ายในตัวอักษร (รวมถึงการห่อซึ่งหมายความว่าถัดจาก 'z' คือ 'a ');

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str เป็นอาร์กิวเมนต์แรกและอาร์เรย์ของตัวเลข arr ที่มีความยาวเท่ากับ str เป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันของเราควรเตรียมสตริงใหม่ที่เปลี่ยนตัวอักษรของสตริงเดิมตามหน่วยที่เกี่ยวข้องที่มีอยู่ในอาร์เรย์ arr

ตัวอย่างเช่น −

หากสตริงอินพุตและอาร์เรย์เป็น −

const str = 'dab';
const arr = [1, 4, 6];

จากนั้นผลลัพธ์ควรเป็น −

const output = 'eeh';

ตัวอย่าง

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

const str = 'dab';
const arr = [1, 4, 6];
const shiftString = (str = '', arr = []) => {
   const legend = '-abcdefghijklmnopqrstuvwxyz';
   let res = '';
   for(let i = 0; i < arr.length; i++){
      const el = str[i];
      const shift = arr[i];
      const index = legend.indexOf(el);
      let newIndex = index + shift;
      newIndex = newIndex <= 26 ? newIndex : newIndex % 26;
      res += legend[newIndex];
   };
   return res;
};
console.log(shiftString(str, arr));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

eeh