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

JavaScript의 문자열에서만 자음 반전

<시간/>

문제

영어 소문자 문자열을 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.

이 함수는 자음의 순서가 바뀌고 모음이 상대적 위치를 유지하는 새 문자열을 생성해야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우
const str = 'somestring';

그러면 출력은 다음과 같아야 합니다. -

const output = 'gomenrtiss';

예시

이에 대한 코드는 -

const str = 'somestring';
const reverseConsonants = (str = '') => {
   const arr = str.split("");
   let i = 0, j = arr.length - 1;
   const consonants = 'bcdfghjklnpqrstvwxyz';
   while(i < j){
      while(i < j && consonants.indexOf(arr[i]) < 0) {
         i++;
      }
      while(i< j && consonants.indexOf(arr[j]) < 0) {
         j--;
      }
      let tmp = arr[i];
      arr[i] = arr[j];
      arr[j] = tmp;
      i++;
      j--;
   }
   let result = "";
   for(let i = 0; i < arr.length; i++) {
      result += arr[i];
   }
   return result;
};
console.log(reverseConsonants(str));

출력

콘솔의 출력은 -

gomenrtiss