[英]Loop check if on last iteration?
如何检查我是否在此循环的最后一次迭代? 我很抱歉提出这个问题。 我习惯用VB.NET编程,javascript本质上看起来很神秘。
if (QuerySplit.length > 1) {
var NewQuery
for (i=0; i<QuerySplit.length; i++)
{
// if we're not on the last iteration then
if (i != QuerySplit.length) {
// build the new query
NewQuery = QuerySplit[i].value + " AND "
}
}
}
你的i
总是比QuerySplit.length
小 - 这就是你的循环条件。 在最后一次迭代中,它将具有QuerySplit.length-1
的值,这是您可以检查的内容:
if (i < QuerySplit.length - 1)
顺便说一句,你最好使用join
Array方法来做你想做的事情:
var NewQuery = QuerySplit.map(function(x){return x.value;}).join(" AND ");
请注意,您需要var NewQuery = "";
并检查长度 - 1.此外,最后一个if语句只是猜测你可能想要做什么:
if (QuerySplit.length > 1) {
var NewQuery = "";
for (i = 0; i < QuerySplit.length; i++) {
// if we're not on the last iteration then
if (i != QuerySplit.length - 1) {
// build the new query
NewQuery += QuerySplit[i].value + " AND "
} else {
NewQuery += QuerySplit[i].value;
}
}
}
如果QuerySplit.length为4,则:
0,1,2,3
......是索引。 因此,您要检查索引何时为3,这是您的最后一次迭代。
该数组是从0开始的。 这意味着如果数组中有3个项目,则索引将为0,1,2
。 最后一个比长度少一个。
你必须这样检查: (i < QuerySplit.length -1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.