freeCodeCamp/guide/chinese/certifications/javascript-algorithms-and-d.../basic-algorithm-scripting/mutations/index.md

5.0 KiB
Raw Blame History

title localeTitle
Mutations 突变

:triangular_flag_on_post:如果卡住,请记得使用**Read-Search-Ask** 。尝试配对程序:busts_in_silhouette:并编写自己的代码:pencil:

:checkered_flag:问题说明:

  • 如果数组的第一个元素中的字符串包含数组的第二个元素中字符串的所有字母则返回true。

相关链接

:speech_balloon:提示1

  • 如果一切都是小写的,那么比较会更容易。

现在尝试解决问题

:speech_balloon:提示2

  • 如果它们是字符数组,我们的字符串可能更容易使用。

现在尝试解决问题

:speech_balloon:提示3

  • 循环可能会有所帮助。使用indexOf()检查第二个单词的字母是否在第一个单词上。

现在尝试解决问题

扰流警报!

警告牌

提前解决!

:beginner:基本代码解决方案

程序

function mutation(arr) { 
  var test = arr[1].toLowerCase(); 
  var target = arr[0].toLowerCase(); 
  for (var i=0;i<test.length;i++) { 
    if (target.indexOf(test[i]) < 0) 
      return false; 
  } 
  return true; 
 } 

:rocket: 运行代码

代码说明:

首先,我们将数组中的两个字符串设为小写。 test将保持我们在target中寻找的东西。
然后我们遍历我们的测试字符,如果找不到任何一个,我们return false

如果_都_发现他们时循环完成而无需返回任何东西我们开始return true

相关链接

:sunflower:中级代码解决方案:

陈述

function mutation(arr) { 
  return arr[1].toLowerCase() 
    .split('') 
    .every(function(letter) { 
      return arr[0].toLowerCase() 
        .indexOf(letter) != -1; 
    }); 
 } 

:rocket: 运行代码

代码说明:

抓住第二个字符串,小写并将其转换为数组;然后确保它的_每个_ _字母_都是小写的第一个字符串的一部分。

Every人基本上都会给你一个字母来比较,我们通过在第一个字符串上使用indexOf来做。如果缺少当前letter indexOf将给出-1。我们检查不是这种情况因为如果这种情况发生即使every都是假的。

相关链接

:clipboard:捐款说明:

  • :warning: 请勿添加与任何现有解决方案类似的解决方案。如果您认为它**相似但更好** ,那么尝试合并(或替换)现有的类似解决方案。
  • 添加解决方案的说明。
  • 将解决方案分为以下类别之一 - 基本 中级高级:traffic_light:
  • 如果您添加了任何**相关的主要内容,**请仅添加您的用户名。 :warning: 不要 删除任何现有的用户名

看到:point_right: Wiki Challenge Solution Template供参考。