gpt4 book ai didi

javascript - For loop..if - 只有在所有间隔都通过后才返回 true

转载 作者:行者123 更新时间:2023-11-30 07:57:05 24 4
gpt4 key购买 nike

有点简单的问题,但我无法弄清楚。也许我应该使用不同的方法。我只想在 for 循环中的所有间隔运行并通过条件后才返回 true。但是,正如我编写的代码一样,返回 true 或 false 是在循环的初始值之后完成的。该代码测试字母“z”是否在字符串中字母“a”之后的 3 或更少索引。如何修复/优化我的代码?

function nearbyAZ(str) {
var aIndex = [];
if (str.length == 1) {
return false;
}
for (var i = 0; i < str.length; i++){
if (str[i] == 'a') {
aIndex.push(i);
}
}
for (var j = 0; j < aIndex.length; j++) {
if (str.indexOf('z') <= aIndex[j] + 3 && str.indexOf('z') >= aIndex[j]) {
return true;
}
else {
return false;
}
}

}

console.log(nearbyAZ("abfz")) //true
console.log(nearbyAZ("abannz")) //should return true but false is returned before the second 'a' can be tested
console.log(nearbyAZ("a")) //false
console.log(nearbyAZ("z")) //false
console.log(nearbyAZ("za")) //false

最佳答案

它不起作用的原因是因为您必须将 return false 放在循环之外。

当它遇到返回时,它将退出函数。

function nearbyAZ(str) {
var aIndex = [];
if (str.length == 1) {
return false;
}
for (var i = 0; i < str.length; i++){
if (str[i] == 'a') {
aIndex.push(i);
}
}
for (var j = 0; j < aIndex.length; j++) {
if (str.indexOf('z') <= aIndex[j] + 3 && str.indexOf('z') >= aIndex[j]) {
return true;
}

}
return false;
}

关于javascript - For loop..if - 只有在所有间隔都通过后才返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37282909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com