>  기사  >  웹 프론트엔드  >  JavaScript의 문자열 내에서 이동 수행

JavaScript의 문자열 내에서 이동 수행

王林
王林앞으로
2023-08-26 10:41:131453검색

在 JavaScript 中执行字符串内的移位

영어 소문자를 포함하는 문자열 str과 배열 arr이 있다고 가정합니다. 여기서 arr[i] = [direction, amount] −

  • direction은 0(왼쪽 이동) 또는 1(오른쪽 이동)일 수 있습니다.

  • amount는 문자열 s가 이동되는 양입니다.

  • 왼쪽으로 1만큼 이동한다는 것은 s의 첫 번째 문자를 제거하고 끝에 추가한다는 의미입니다.

  • 마찬가지로 오른쪽으로 1만큼 이동한다는 것은 s의 첫 번째 문자를 제거하고 끝에 추가하는 것을 의미합니다. s의 마지막 문자를 제거하고 시작 부분에 추가합니다.

문자열을 첫 번째 매개변수로 받아들이고 Shift가 포함된 배열 데이터를 두 번째 매개변수로 받아들이는 JavaScript 함수를 작성해야 합니다.

함수는 배열을 반복하고 문자열에서 필요한 이동을 수행한 다음 마지막으로 새 문자열을 반환해야 합니다.

예를 들어 -

입력 문자열과 배열이 -

const str = 'abc';
const arr = [[0, 1], [1, 2]];

인 경우 출력은 -

const output = 'cab';

여야 합니다. 왜냐하면

[0,1]은 1을 왼쪽으로 이동한다는 의미이기 때문입니다. "abc" -> "bca"

[1,2]는 2만큼 오른쪽으로 이동을 의미합니다. "bca" -> "cab"

Example

코드는 -

Live Demonstration

const str = 'abc';
const arr = [[0, 1], [1, 2]];
const performShifts = (str = '', arr = []) => {
   if(str.length < 2){
      return str;
   };
   let right = 0
   let left = 0;
   for(let sub of arr){
      if(sub[0] == 0){
         left += sub[1];
      }else{
         right += sub[1];
      };
   };
   if(right === left){
      return str;
   }
   if(right > left){
      right = right - left;
      right = right % str.length;
      return str.substring(str.length - right) + str.substring(0,
      str.length - right);
   }else{
      left = left - right;
      left = left % str.length;
      return str.substring(left) + str.substring(0,left);
   };
};
console.log(performShifts(str, arr));

Output

입니다. 콘솔에서 출력은 -

cab
입니다.

위 내용은 JavaScript의 문자열 내에서 이동 수행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제