สมมติว่าเรามีสตริงที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น สำหรับจุดประสงค์ของคำถามนี้ เรากำหนดให้การขยับหน่วยของตัวอักษรเป็นการแทนที่ตัวอักษรนั้นให้เป็นตัวอักษรต่อท้ายในตัวอักษร (รวมถึงการห่อซึ่งหมายความว่าถัดจาก '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