Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 배열을 기반으로 문자열 문자 이동

<시간/>

소문자 영어 알파벳만 포함하는 문자열이 있다고 가정합니다. 이 질문의 목적을 위해 문자의 단위 이동을 바로 그 문자를 알파벳의 다음 문자로 바꾸는 것으로 정의합니다('z' 옆에 있음을 의미하는 래핑 포함은 'a ');

문자열 str을 첫 번째 인수로 사용하고 str과 같은 길이의 숫자 배열을 두 번째 인수로 사용하는 JavaScript 함수를 작성해야 합니다. 우리 함수는 원래 문자열의 문자가 배열 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