簡體   English   中英

在循環中檢查數組在 Javascript/QML 中有下一個元素

[英]Check inside a loop that array has next element in Javascript/QML

我有一個數組items 我需要確保在循環的當前迭代中我可以安全地調用數組的下一項

for(var i = 0; i < items.length; ++i) {

  // do some stuff with current index e.g....
  item = items[i];


   // then do something with item @ i+1
   if(items[i+1]) {
      //do stuff 
   }

}

這是如何完成的,或者如果不是如何/什么是更好的方法?

PS我不想做綁定檢查

如果你想遍歷除最后一個元素(后面沒有元素)之外的每個元素,你應該按照建議執行:

for(var i = 0; i < items.length-1; ++i) {
    // items[i+1] will always exist inside this loop
}

但是,如果您想遍歷每個元素 - 甚至最后一個 - 並且如果后面有元素,只需添加一個條件,只需在循環中移動相同的條件:

for(var i = 0; i < items.length; ++i) {
    // do stuff on every element
    if(i < items.length-1){
        // items[i+1] will always exist inside this condition
    }
}

if(items[i+1])將返回 false (並且不執行條件)如果下一個元素包含 falsey 值,如false0"" (空字符串返回false )。

對變量i進行值檢查並確保它小於items.length-1以安全訪問items[i+1]

for(var i = 0; i < items.length-1; ++i) {

  if(items[i+1]) {
    //do stuff 
  }

}

刪除for循環並使用array#forEach ,然后簡單地檢查下一個值是否存在:

items.forEach(function (item, index) {

  if (!items[index + 1]) return;

  // do something with item and items[index + 1]
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM