Computer >> Máy Tính >  >> Lập trình >> Javascript

Nhóm các từ bằng cách đảo chữ cái của chúng trong JavaScript

Đảo ngữ:

Hai từ hoặc cụm từ có thể được tạo ra bằng cách sắp xếp các chữ cái của nhau theo một thứ tự khác nhau được gọi là đảo ngữ của nhau, như rat và tar.

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng chuỗi có thể chứa một số chuỗi đảo chữ cái. Hàm nên nhóm tất cả các từ đảo ngữ thành các mảng con riêng biệt và trả về mảng mới do đó tạo thành.

Ví dụ -

Nếu mảng đầu vào là -

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

Sau đó, mảng đầu ra phải là -

const output = [
   ['rat', 'tar', 'art'],
   ['jar', 'raj'],
   ['ram', 'arm', 'mar']
];

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

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