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