字符串是否为变位词

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,我们将探索如何检查一个给定的字符串是否是另一个字符串的变位词。变位词是通过重新排列另一个单词或短语的字母而形成的,例如“iceman”和“cinema”。我们将使用JavaScript创建一个函数,该函数接受两个字符串作为参数,并返回一个布尔值,指示它们是否彼此为变位词。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") subgraph Lab Skills javascript/variables -.-> lab-28409{{"`字符串是否为变位词`"}} javascript/data_types -.-> lab-28409{{"`字符串是否为变位词`"}} javascript/arith_ops -.-> lab-28409{{"`字符串是否为变位词`"}} javascript/comp_ops -.-> lab-28409{{"`字符串是否为变位词`"}} end

用于检查字符串是否为变位词的 JavaScript 函数

要检查一个字符串是否是另一个字符串的变位词,请使用以下 JavaScript 函数。它不区分大小写,并且会忽略空格、标点符号和特殊字符。

const isAnagram = (str1, str2) => {
  const normalize = (str) =>
    str
      .toLowerCase()
      .replace(/[^a-z0-9]/gi, "")
      .split("")
      .sort()
      .join("");
  return normalize(str1) === normalize(str2);
};

要使用此函数,请打开终端/SSH 并输入 node。然后,使用两个字符串作为参数调用该函数:

isAnagram("iceman", "cinema"); // true

该函数使用 String.prototype.toLowerCase()String.prototype.replace() 以及适当的正则表达式来删除不必要的字符。它还对两个字符串都使用了 String.prototype.split()Array.prototype.sort()Array.prototype.join() 来规范化它们,并检查它们的规范化形式是否相等。

总结

恭喜你!你已经完成了“字符串是否为变位词”实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程