Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

javascript

qml

I have an array items. I need to make sure that in the current iteration of the loop I can safely call the next item of the array

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 
   }

}

Is this how it is done or if not how/what would be the better way?

P.S. I do not want to do a bound check

like image 904
Saeid Yazdani Avatar asked Dec 15 '22 12:12

Saeid Yazdani


2 Answers

If you want to loop through every element except the last one (which doesn't have an element after it), you should do as suggested:

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

If, however, you want to loop through every element -even the last one-, and just add a condition if there is an element after, just move that same condition inside your 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]) will return false (and not execute the condition) if the next element contains a falsey value like false, 0, "" (an empty String returns false).

like image 194
blex Avatar answered Dec 30 '22 00:12

blex


Put a value check on variable i and make sure it is less than items.length-1 in order to safely access items[i+1].

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

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

}
like image 22
PsyLogic Avatar answered Dec 30 '22 02:12

PsyLogic