首页 > 解决方案 > 为什么这种特定的突变会回归真实,而其他突变则不然?

问题描述

我正在应对来自 FCC 的挑战之一,我坚持这一突变。

FCC 经历了一系列其他突变,它们都恢复正确,但这个没有,我不知道为什么。

function mutation(arr) {
  let arr1 = arr[1].toString().toLowerCase().split("");
  let arr2 = arr[0].toString().toLowerCase();
  for (let i = 0; i < arr2.length; i++) {
    if (arr2.includes(arr1[i]) == false) {
      return false
    } else {
      return true
    }
  }
}
console.log(
  mutation(["hello", "hey"])
);  

标签: javascript

解决方案


请记住,当一个函数遇到带有 的行时return,它会立即停止。

所以在这段代码中,arr1 是一个包含第二个单词的字母的数组,而 arr2 是一个包含第一个单词的字母的数组。然后循环查看 arr2 并检查 arr1 中的相应字母是否匹配。不管有没有,它都会立即返回,这意味着无论你给它什么输入,它只会检查单词的第一个字母是否匹配。

因此,在您的示例调用中,它将查看“hello”中的“h”,将其与“hey”中的“h”进行比较,并且由于它们匹配,它将返回 true 并停止检查。


推荐阅读