我有一个for循环,需要在每次迭代时返回一些内容:
for(var i=0;i<100;++i) {
return i;
}
但是返回打破了循环。我怎么能回来但是循环运行?
答案 0 :(得分:10)
将其存储在数组中。
var array = [];
for (var i = 0; i < 100; ++i) {
array.push(i);
}
答案 1 :(得分:5)
此处的背景尚不清楚。如果你试图为循环的每次迭代执行一个函数,为什么不能像在循环中调用函数那样简单呢?
for(var i=0;i<100;++i) {
processIteration(i)
}
在processIteration
中,您只需处理该值所需的内容即可。
答案 2 :(得分:2)
将需要返回的值存储在数组中,然后在循环之后返回数组。
答案 3 :(得分:0)
有3种解决方法
function loop() {
promises = []
for (var i = 0; i < 100; ++i) {
// push a promise resolve to a promises array
promises[i] = Promise.resolve(i);
}
return promises;
}
// Observe the promises loop
for (let p of loop()) {
p.then(console.log)
}
function loop(cb) {
for(var i = 0; i < 100; ++i) {
// calling the callback
cb(i);
}
}
// Pass a do something method
// Here it's the console log as the callback
loop(console.log)
// Generator function for loop over 100
function* loop() {
for (var i = 0; i < 100; ++i) {
// return value from loop
yield i;
}
}
// Initialize the generator function
let it = loop();
// Call and get the resulr
// it.next().value
var result = it.next();
while (!result.done) {
console.log(result.value); // 1 2 3 .... 99
result = it.next();
}