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

JavaScript에서 아나그램으로 단어 그룹화

<시간/>

애너그램:

서로의 문자를 다른 순서로 배열하여 만들 수 있는 두 개의 단어 또는 구를 쥐와 타르와 같이 서로의 아나그램이라고 합니다.

일부 아나그램 문자열을 포함할 수 있는 문자열 배열을 사용하는 JavaScript 함수를 작성해야 합니다. 이 함수는 모든 아나그램을 별도의 하위 배열로 그룹화하고 이렇게 형성된 새 배열을 반환해야 합니다.

예를 들어 -

입력 배열이 -

인 경우
const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];

그러면 출력 배열은 -

여야 합니다.
const output = [
   ['rat', 'tar', 'art'],
   ['jar', 'raj'],
   ['ram', 'arm', 'mar']
];

예시

다음은 코드입니다 -

const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];
const groupSimilarWords = (arr = []) => {
   if (arr.length === 0){
      return arr;
   };
   const map = new Map();
   for(let str of arr){
      let sorted = [...str];
      sorted.sort();
      sorted = sorted.join('');
      if(map.has(sorted)){
         map.get(sorted).push(str);
      }else{
         map.set(sorted, [str])
      };
   };
   return [...map.values()];
};
console.log(groupSimilarWords(arr));

출력

다음은 콘솔 출력입니다 -

[ [ 'rat', 'tar', 'art' ], [ 'jar', 'raj' ], [ 'ram', 'arm', 'mar' ] ]