gpt4 book ai didi

javascript - 在 JavaScript 中限制条件赋值的范围

转载 作者:行者123 更新时间:2023-11-29 18:49:17 25 4
gpt4 key购买 nike

以下代码将所有低于限制的点推送到 data 中,直到 getPoint 返回 null

while ((x = getPoint()) && x < limit) {
data.push(x)
}

console.log(x, 'x should be undefined here')

在这种特殊情况下,我在条件中使用赋值,我知道它看起来很难看,但问题集中在 x 上,它不是 block 的本地代码。我试图在那里放置一个 let,但它不起作用。

是否可以在while语句中限制x的范围?

另一个可行的实现是这个,但在这种情况下,我在 x 上加倍测试:

do {
let x = getPoint()
if (x && x < limit) {
data.push(x)
}
} while(x && x < limit)

while (true) {
let x = getPoint()
if (!x || x >= limit) {
break;
}
data.push(x)
}

function* getPointIterator(limit) {
let x = getPoint()
while(x && x < limit) {
yield x;
}
}

data.push(...getPointIterator(limit))

最佳答案

您可以考虑将 while 循环更改为 for 循环:

var limit = 3;
var r = 2;
var data = [];

function getPoint() {
return r++;
}


for (let x=0; (x = getPoint()) && x < limit;) {
data.push(x)
}

console.log(typeof(x) === 'undefined' ? 'undefined' : x, 'x should be undefined here')

关于javascript - 在 JavaScript 中限制条件赋值的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51885126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com