For-loop忽略break语句?

蝙蝠侠

当我在if语句中得到错误的结果时,我试图停止循环,但是它不起作用,并且我看不到我所缺少的内容。我添加了一个标签,希望这将是解决方案,但还是没有。

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。

卡洛斯·阿方索(Carlos Afonso)

您的if必须是这样的:

if(a[i]*a[i] != b[i]) {
    return !result;
}

您甚至不需要labelbreak因为return已经为您摆脱了函数的负担,因此循环显然已停止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档