我给我的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)
同样没有ES6箭头:
let smallNums = [3, 5, 15, 7, 5].filter(function(n) { return 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}.`);
}
};