while循环中的条件表达式不能按预期工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了while循环中的条件表达式不能按预期工作相关的知识,希望对你有一定的参考价值。

我给我的while循环提供了条件测试,但它似乎没有用。我认为这是因为增量算子。但我找不到原因

const nums = [3, 5, 15, 7, 5];
let n, i = 0;
while ((n = nums[i]) < 10, i++ < nums.length) {
  console.log(`Number less than 10: ${n}.`);
  };

预计[3,5,7,5] 实际结果[3,5,15,7,5] 我不知道为什么15出来了。

我想知道为什么while循环像这样工作。

更新:

这个问题来自“学习javascript 3rd”这本书,,逗号运算符不像我想的那样工作。

答案

当你到达15时,如果你更正了,那么就是快捷方式

逗号运算符返回i++ < nums.length的结果

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator

你真的想看看ES5 / ES6和过滤器

let smallNums = [3, 5, 15, 7, 5].filter((n) => n<10)
console.log(smallNums)
另一答案

这里。你应该在while循环中创建一个条件,因为如果条件为false,那么整个循环将被终止。

const nums = [3, 5, 15, 7, 5];
let n, i = 0;
while (i < nums.length) {
  if ((n = nums[i++]) < 10) {
    console.log(`Number less than 10: ${n}.`);
  }
};

以上是关于while循环中的条件表达式不能按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 getch() 的循环条件未按预期结束循环

node.js:while 循环回调未按预期工作

在 C++ 中读取文件:for 和 while 嵌套循环没有按预期工作:串行?

循环中的求和对不能按预期工作[重复]

while 循环中的赋值 - Javascript

C#中至少包含六个单词的字符串的while循环