while 循环中的条件表达式无法按预期工作
conditional expression in while-loop does not work as expected
我对我的 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 循环会这样工作。
更新:
此题出自书本'learning javascript 3rd'
,
逗号运算符没有像我想的那样工作。
这里。您应该在 while 循环内设置条件,因为如果条件为假,则整个循环将终止。
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}.`);
}
};
如果将 , 更正为 &&
,则当您到达 15 时,while 是快捷方式
逗号运算符returnsi++ < 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 循环进行了条件测试,但它似乎不起作用。 我认为这是因为增量运算符。但我找不到原因
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 循环会这样工作。
更新:
此题出自书本'learning javascript 3rd'
,
逗号运算符没有像我想的那样工作。
这里。您应该在 while 循环内设置条件,因为如果条件为假,则整个循环将终止。
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}.`);
}
};
如果将 , 更正为 &&
,则当您到达 15 时,while 是快捷方式逗号运算符returnsi++ < 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)