[英]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.