首页 > 解决方案 > 在 Javascript 中使用 Map 从一组字谜中查找唯一单词

问题描述

我知道如何在没有Map. 用于此任务似乎更合乎逻辑,Map但我似乎无法实现它。这甚至可能吗?

到目前为止,我绑定了这个:

function aclean(arr) {
  let result = [];
  let unique = new Map();

  for(let i = 0; i < arr.length; i++){
    let sorted = arr[i].toLowerCase().split("").sort().join("");

    /*if (unique.add(sorted)) {
      result.push(arr[i]);
    }*/
  }

  return result;
}

let array = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];

console.log(aclean(array));

结果应该是:nap,teachers,earPAN,cheaters,era

标签: javascriptarraysobjectanagram

解决方案


您可以Set使用标准化(小写,排序)字符串并返回过滤结果。

function aclean(array) {
    let unique = new Set();

    return array.filter(s => {
        let sorted = s.toLowerCase().split("").sort().join("");
        if (!unique.has(sorted)) {
            unique.add(sorted);
            return true;
        }
    });
}

let array = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];

console.log(aclean(array));


推荐阅读