Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
63
rated 0 times [  65] [ 2]  / answers: 1 / hits: 165663  / 12 Years ago, fri, may 25, 2012, 12:00:00

I found a lot of related questions with answers talking about for...in loops and using hasOwnProperty but nothing I do works properly. All I want to do is check whether or not a key exists in an array and if not, add it.



I start with an empty array then add keys as the page is scrubbed with jQuery.



Initially, I hoped that something simple like the following would work: (using generic names)



if (!array[key])
array[key] = value;


No go. Followed it up with:



for (var in array) {
if (!array.hasOwnProperty(var))
array[key] = value;
}


Also tried:



if (array.hasOwnProperty(key) == false)
array[key] = value;


None of this has worked. Either nothing is pushed to the array or what I try is no better than simply declaring array[key] = value Why is something so simple so difficult to do. Any ideas to make this work?


More From » jquery

 Answers
15

Generally speaking, this is better accomplished with an object instead since JavaScript doesn't really have associative arrays:



var foo = { bar: 0 };


Then use in to check for a key:



if ( !( 'bar' in foo ) ) {
foo['bar'] = 42;
}


As was rightly pointed out in the comments below, this method is useful only when your keys will be strings, or items that can be represented as strings (such as numbers).


[#85348] Thursday, May 24, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kinsley

Total Points: 352
Total Questions: 84
Total Answers: 94

Location: Denmark
Member since Tue, Jul 19, 2022
2 Years ago
;