我有一个 for 循环,需要在每次迭代时返回一些东西:
for(var i=0;i<100;++i) {
return i;
}
但 return 打破了循环。我怎样才能返回但保持循环运行?
我有一个 for 循环,需要在每次迭代时返回一些东西:
for(var i=0;i<100;++i) {
return i;
}
但 return 打破了循环。我怎样才能返回但保持循环运行?
将其存储在数组中。
var array = [];
for (var i = 0; i < 100; ++i) {
array.push(i);
}
这里的上下文不清楚。如果您尝试为循环的每次迭代执行一个函数,为什么不做一些简单的事情,比如从循环中调用一个函数呢?
for(var i=0;i<100;++i) {
processIteration(i)
}
在processIteration
您可以简单地处理您需要使用该值发生的事情。
将需要返回的值存储在一个数组中,然后在循环之后,返回该数组。
有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();
}