Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Nhóm từ với anagram của chúng trong JavaScript

Hai từ là anagram nếu sắp xếp lại ký tự được từ kia. Viết hàm nhóm các anagram trong mảng chuỗi thành các mảng con riêng biệt.

Ví dụ: ['rat','jar','tar','raj','ram','arm','mar','art'] → [['rat','tar','art'],['jar','raj'],['ram','arm','mar']].

Ví dụ

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].sort().join('');
    if (map.has(sorted)) map.get(sorted).push(str);
    else map.set(sorted, [str]);
  }
  return [...map.values()];
};
console.log(groupSimilarWords(arr));

Kết quả

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