javascript - 我在哪里放置我的回报真实声明
问题描述
这是一个基本的 javascript 问题,我只是想更好地理解。我试图了解我将返回真实声明放在哪里是否重要。这是示例代码:
function isValid(input) {
for (var i = 0; i < input.length - 2; i++) {
var charOne = input.charAt(i);
var charTwo = input.charAt(i + 1);
var charThree = input.charAt(i + 2);
if (charOne === charTwo && charOne === charThree) {
return false;
}
return true;
}
}
isValid("ABB");
这将返回 true,但如果我将 return true 语句放在这里,也会返回 true:
function isValid(input) {
for (var i = 0; i < input.length - 2; i++) {
var charOne = input.charAt(i);
var charTwo = input.charAt(i + 1);
var charThree = input.charAt(i + 2);
if (charOne === charTwo && charOne === charThree) {
return false;
}
}
return true; // Moved this return statement
}
isValid("ABB");
一种方式错误而另一种方式正确吗?
解决方案
第二个,因为在每次迭代后的第一个中,您检查字符是否相等并且它会return false
或 return true
在第一次迭代本身中。在第二个中,您检查所有组合,如果它从不为假,那么它必须为真。
推荐阅读
- c++ - 为什么 std::forward_list::empty 有 [[nodiscard]] 而 std::forward_list::max_size 没有?
- java - While 循环终止而不改变条件的值
- python - 确定 pandas 序列的元素是否包含不同序列的元素作为子字符串
- javascript - 如何从一个输入标签传递两个“名称”以在服务器中访问
- python - pandas 的 .query() 不接受我使用 like 'XXX%' 来表达 startwith 的表达
- cmake - 从 MSVC 2019 内置 CMake 配置英特尔编译器
- c# - 委托问题,名称在当前上下文中不存在?
- python - 仅从数据框中选择每个月的最后一周 - Python/Pandas
- llvm - 将现有函数的参数放在对 LLVM 函数传递中另一个函数的调用中
- javascript - 如何使用插值字符串设置 Formik 初始值?