首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环检查是否在最后一次迭代中?

循环检查是否在最后一次迭代中?
EN

Stack Overflow用户
提问于 2013-06-26 02:34:56
回答 3查看 32K关注 0票数 14

如何检查我是否在这个循环的最后一次迭代中?很抱歉我问了这个问题。我习惯于用VB.NET编程,而javascript看起来很神秘。

代码语言: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 "
       }
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-26 02:36:44

请注意,您需要var NewQuery = "";并检查长度是否为1。另外,最后一条if语句只是对您可能想要做的事情的猜测:

代码语言: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 - 1) {
      // build the new query
      NewQuery += QuerySplit[i].value + " AND "
    } else {
      NewQuery += QuerySplit[i].value;
    }
  }
}

如果QuerySplit.length为4,则:

0,1,2,3

...are索引。所以你想要检查索引是3的时候,这是你的最后一次迭代。

票数 13
EN

Stack Overflow用户

发布于 2013-06-26 02:36:54

你的i总是小于QuerySplit.length --这就是你的循环条件。在最后一次迭代中,它将有一个值QuerySplit.length-1,这是您可以检查的:

代码语言:javascript
复制
if (i < QuerySplit.length - 1)

顺便说一句,你最好使用join Array method来做你想做的事情:

代码语言:javascript
复制
var NewQuery = QuerySplit.map(function(x){return x.value;}).join(" AND ");
票数 17
EN

Stack Overflow用户

发布于 2013-06-26 02:36:09

该数组从0开始。这意味着如果数组中有3个项目,那么您的索引将为0,1,2。最后一个比长度小一。

您必须像这样检查:(i < QuerySplit.length -1)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17304978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档