如何从闭合功能调用中返回相同的值n次?
我想做的是闭合返回相同的值n
次数。
let value = getCurrentValue([0, 315, 270, 225, 180, 135, 90], 3);
然后我应该得到:
value() // returns 0
value() // returns 0
value() // returns 0
value() // returns 315
value() // returns 315
value() // returns 315
value() // returns 270
value() // returns 270
value() // returns 270
这是我尝试的!
function getCurrentValue(values, num) {
let index = -1;
let l = values.length;
function increment() {
++index;
if (index < l) {
return values[index]
} else {
index = -1;
++index;
return values[index]
}
}
if (num) {
for (var i = 0; i < num; i++){
return increment
}
}
return increment;
}
任何帮助将不胜感激!
What I would like to do is have a closure return the same value n
amount of times.
let value = getCurrentValue([0, 315, 270, 225, 180, 135, 90], 3);
I should then get:
value() // returns 0
value() // returns 0
value() // returns 0
value() // returns 315
value() // returns 315
value() // returns 315
value() // returns 270
value() // returns 270
value() // returns 270
This is what I tried!
function getCurrentValue(values, num) {
let index = -1;
let l = values.length;
function increment() {
++index;
if (index < l) {
return values[index]
} else {
index = -1;
++index;
return values[index]
}
}
if (num) {
for (var i = 0; i < num; i++){
return increment
}
}
return increment;
}
Any help would be appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是我的解决方案&amp;闭合解决方案
Here is my
generator
solution & closure solution只需使用 itererator 函数。
Simply use an iterator function.
仅使用闭合 - 跟踪索引和返回函数之外的重复次数,因此值通过呼叫持续存在:
如果/
else
可以通过使用%
来缩短来增加重复
值,然后将其限制为最大值:Using just a closure - keep track of the index and the number of repeats outside the returned function, so the values persist through calls:
The
if
/else
section can be shortened by using%
to increase therepeat
value and cap it to the maximum:在JavaScript中:
In Javascript:
如果我了解得很好,这就是您想要的
If I understood well this is what you want