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

JavaScript에서 문자열 내 알파벳 정렬

<시간/>

다음과 같이 쉼표로 구분된 문자열이 있다고 가정해 보겠습니다. -

const str = 'JAY, ROB';

우리는 그러한 문자열 하나를 취하는 JavaScript 함수를 작성해야 합니다. 이 함수는 앞의 알파벳이 항상 다음보다 큰 문자열의 단어에서 새 단어를 만들 수 있습니다(예:A는 B보다 큼)

예를 들어 위의 문자열에서 JAY의 첫 글자를 ROB의 첫 글자와 비교하려고 합니다.

R과 비교할 때 J가 먼저 오기 때문에 새 단어의 첫 번째 알파벳은 J가 됩니다. 두 번째와 비교하면 A가 R보다 먼저 오기 때문에 두 번째 알파벳이 되므로 세 번째 알파벳도 마찬가지로 R이 됩니다.

따라서 마지막 단어는 'JAROBY'가 됩니다.

이 예에서는 두 단어만 포함된 문자열을 사용했지만 두 단어 이상에서도 작동할 수 있는 솔루션을 작성해야 합니다.

예시

이에 대한 코드는 -

const str = `JAY,ROB,APPLE,AAKO`;
const specialSort = (str = '') => {
   let len = str.replace(/,/g, "").length;
   const sorter = (str, b) => {
      if(str === "" || str === null) return 1;
      if(b === "" || b === null) return −1;
      if(str === b) return 0;
      return str < b ? −1 : 1;
   };
   let res = "";
   let sorted = str.split(",").sort(sorter);
   while (res.length < len){
      res += sorted[0][0];
      sorted[0] = sorted[0].slice(1);
      sorted = sorted.sort(sorter);
   }
   return res;
};
console.log(specialSort(str));

출력

콘솔의 출력은 -

AAAJAKOPPLEROBY