영어 소문자를 포함하는 문자열 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"
코드는 -
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));
입니다. 콘솔에서 출력은 -
cab입니다.
위 내용은 JavaScript의 문자열 내에서 이동 수행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!