【发布时间】:2015-05-19 16:52:15
【问题描述】:
我正在编写一个 Javascript 函数,它从 CloudDB 数据库中提取单词并将它们放入三个数组之一:动词、形容词或名词。一旦所有单词都到位并且最后一个循环运行,我想运行下一个函数。代码如下:
function verbnoun(array){
verbs = [];
adjectives = [];
nouns = [];
for (i = 0; i<array.length; i++){
//console.log(i); <-- returns 0,1,2,3...57,58 as expected
my_db.get(array[i], function(err, doc) {
if (!err){
if (doc.type == "verb"){
verbs.push(doc.word);
}
else if (doc.type == "adjective"){
adjectives.push(doc.word);
}
else if (doc.type == "noun"){
nouns.push(doc.word);
}
}
//console.log(i); <-- returns 59,59,59,59,59
if (i+1 == array.length){
nextFunction(verbs, adjectives, nouns);
}
});
}
}
但我不知道如何在最后一个循环之后运行下一个函数。如果我尝试在 for 循环之外运行它,我只会得到空数组。使用 if 语句触发最后一个循环似乎也不起作用,因为 for 循环中的“i”每次都停留在 59,而不是从 0、1、2、3 等开始计数(见评论在代码中),所以我不能挑出哪个是最后一个循环。
这是我在 StackExchange 上的第一篇文章,感谢您的耐心等待。
【问题讨论】:
-
Crowder 已经指出存在多个问题。看到这个帖子Is using 'var' to declare variables optional?
标签: javascript node.js for-loop