为什么 JavaScript 中的 indexOf 不起作用?

2024-03-02

我不确定我在这里做错了什么。我使用 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

如果 array[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++) {

现在你的代码可以按照你想要的方式工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 JavaScript 中的 indexOf 不起作用? 的相关文章

随机推荐