Javascript 是否在最后一次迭代中进行循环检查?

Javascript 是否在最后一次迭代中进行循环检查?,javascript,Javascript,如何检查我是否在这个循环的最后一次迭代中?我很抱歉问这个问题。我习惯于用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) {

如何检查我是否在这个循环的最后一次迭代中?我很抱歉问这个问题。我习惯于用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 "
       }
    }
}
if(QuerySplit.length>1){
var NewQuery

对于(i=0;i数组是基于0的。这意味着如果数组中有3个项目,则索引将是
0,1,2
。最后一个比长度小一个


您必须这样检查:
(i

注意您需要
var NewQuery=“”;
并检查length-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;
    }
  }
}
if(QuerySplit.length>1){
var NewQuery=“”;
对于(i=0;i
如果QuerySplit.length为4,则:

0,1,2,3

…是索引。因此,您希望检查索引何时为3,这是您的最后一次迭代。

您的
i
始终小于
QuerySplit.length
-这是您的循环条件。在上一次迭代中,它的值为
QuerySplit.length-1
,这是您可以检查的内容:

if (i < QuerySplit.length - 1)

尝试
if(i!==(QuerySplit.length-1)){
也不需要分号,但强烈建议使用!不确定这应该做什么-在每次迭代(但最后一次)时都覆盖
NewQuery
?注意,如果(i!=0){NewQuery+=“和”}NewQuery+=QuerySplit[i],也可以这样做.value;
。开头比结尾更容易找到。@Neil:如果你不接受答案,你仍然可以,或者(这太值得称赞了:-)
var NewQuery = QuerySplit.map(function(x){return x.value;}).join(" AND ");