javascript - 为什么 javascript 中的 indexOf 不起作用?

标签 javascript

我不确定我在这里做错了什么。我使用 indexOf 的第一个实例工作得很好,但是当我第二次使用它时,它没有返回我期望的结果。

function mutation(arr) {
    //return arr;
    res = "";
    for (var x=0; x<arr[1].split("").length; x++) {
        if (arr[0].indexOf(arr[1].split("")[x]) !== -1) {
            res += "t";
        } else {
            res += "f";
        }
    }
    // res = ttt
    if (res.indexOf("f") !== -1) {
        return true;
    } else {
        return false;
    }
}

mutation(["hello", "hey"]);
// this returns true instead of false
mutation(["floor", "loo"]); 
// returns false instead of true

如果 arr[1] 中的元素不存在于 arr[0] 中,则突变应返回 false,否则返回 true。

最佳答案

您的代码无法正常工作,因为当您说:

res.indexOf("f") != -1

这意味着:“我找到了一个 f”,但您将其视为“我没有找到一个 f”。

在您的情况下,如果您找到“f”,您希望返回 false,但您返回的是 true。翻转你的真假案例:

if (res.indexOf("f") != -1) {
   return false;
 } else {
   return true;
 }

您的 for 循环也是错误的,因为 x 从 0 开始,因此您需要转到

for (var x=0; x < arr[1].split("").length; x++) {

现在您的代码可以按您希望的方式运行。

关于javascript - 为什么 javascript 中的 indexOf 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851903/

相关文章:

javascript - 如何在我的输入数据不填充该数组中的其他输入的情况下编辑动态添加的输入?

javascript - 异步操作未运行 Async React Redux Thunk

javascript - instanceof 的右侧不可调用

javascript - createFromObjects() 在移相器中不起作用?

javascript - Chrome 扩展 : Check if background script is running

javascript - 测试一个字符串数组的indexOf 与另一个数组?

javascript - 在同一个 Node JS 实例上对同一个文件进行多次 require 的成本有多高?

javascript - "Cannot call method ' 关于 ' of undefined"问题

javascript - 使用 AngularJS 时出现 ".then() is not a function"错误

javascript - 插入一些脚本后,美元符号返回 null