我试图停止循环,当我得到一个虚假的结果在我的if语句,但它不工作,我看不到我失踪。我添加了一个标签,希望这将是解决方案,但仍然没有。For-Loop忽略break语句?
let a1 = [1321, 144, 19, 161, 19, 144, 19, 11];
let a2 = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19];
function comp(a,b){
a.sort()
b.sort()
var result = true;
if (a === null || b === null) { return !result }
if(a.length < 1 || b.length < 1) { return !result }
loop_label: for (var i =0; i < a.length; i++) {
console.log(a[i]*a[i], b[1],(a[i]*a[i]) == b[i])
if(!(a[i]*a[i]) == b[i]) {
return !result;
break loop_label;
}
}
return result;
};
取而代之的是它保持循环并在最后返回true,但我希望它在其中一个评估为false时返回false。
的'return'声明什么,立刻退出功能。 – Pointy
这究竟是以什么方式“不工作”?虽然'break'语句是多余的,因为它在'return'之后永远不会到达,循环*会在return之后停止。 – David
也许是因为你的console.log语句总是抛出'b [1]'而不是'b [i]'你得到错误的假设,它不会退出代码? – Icepickle