Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Checking item of array on "undefined" in JavaScript

My JS-code has array arrayResults, some element of him can be "undefined" - this is feature of algorithm. To check that there is no such elements I use the follow code:

for (i in arrayResults)
        {
          if (typeof(arrayResults[i])=='undefined')
           {
              // ask user to repeat
           };
        };  

But, using the debugger, I found that JS-engine passes the "undefined"-item of array (in for condition), respectively I don't have the possibility to make the comparing and make the follow instructions.

So, is there any way to really check the "undefined" items in array? (I can't to set items of array in sequence, because if I found the position of "undefined" item, I tell to user to go to this position).

like image 384
Eugene Shmorgun Avatar asked Mar 06 '26 01:03

Eugene Shmorgun


2 Answers

Don't use a for..in loop to iterate arrays. If you are interested in the reasons, please read this StackOverflow question. They should only be used for traversing objects.

Use a simple oldschool for loop instead, it will solve your problem.

for (var i = 0, l = arrayResults.length; i < l; i++) {
    if (typeof(arrayResults[i])=='undefined') {
         // ask user to repeat
    };
};  

jsFiddle Demo

like image 172
kapa Avatar answered Mar 08 '26 14:03

kapa


You can use indexOf method on array.

function hasUndefined(a) {
    return a.indexOf() !== -1;
}

hasUndefined([1,2,3, undefined, 5]);
like image 44
Mateusz Nowak Avatar answered Mar 08 '26 14:03

Mateusz Nowak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!