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