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

Chuyển các ký tự chuỗi dựa trên một mảng trong JavaScript

Giả sử chúng ta có một chuỗi chỉ chứa các bảng chữ cái tiếng Anh viết thường. Vì mục đích của câu hỏi này, chúng tôi định nghĩa việc chuyển đơn vị của một ký tự là thay thế chính ký tự đó thành ký tự tiếp theo của nó trong bảng chữ cái (bao gồm gói có nghĩa là bên cạnh 'z' là 'a ');

Chúng tôi được yêu cầu viết một hàm JavaScript lấy chuỗi str làm đối số đầu tiên và một mảng số arr có cùng độ dài với str làm đối số thứ hai. Hàm của chúng ta nên chuẩn bị một chuỗi mới, trong đó các chữ cái của chuỗi ban đầu được dịch chuyển bởi các đơn vị tương ứng có trong mảng arr.

Ví dụ -

Nếu chuỗi đầu vào và mảng là -

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

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

const output = 'eeh';

Ví dụ

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

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));

Đầu ra

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

eeh