Given an item and an array, I would like to know if item exist in array.
item is a jQuery object, e.g. $(".c"). You can assume that item.length == 1.
array is an array of jQuery objects, e.g. [$(".a"), $(".b")]. Each item in this array may represent 0, 1, or more objects.
Here is how I thought to implement this: (live demo here)
function inArray(item, arr) {
    for (var i = 0; i < arr.length; i++) {
        var items = $.makeArray(arr[i]);
        for (var k = 0; k < items.length; k++) {
            if (items[k] == item[0]) {
                return true;
            }
        }
    }
    return false;
}
Can you find a more elegant implementation?
Example:
HTML:
<div class="a">Hello</div>
<div class="a">Stack</div>
<div class="a">Overflow</div>
<div class="b">Have</div>
<div class="b">a</div>
<div class="b">nice</div>
<div class="b">day!</div>
<div class="c">Bye bye</div>
JS:
console.log(inArray($(".a").eq(2), [$(".a"), $(".b")])); // true
console.log(inArray($(".b").eq(3), [$(".a"), $(".b")])); // true
console.log(inArray($(".c"), [$(".a"), $(".b")]));       // false
console.log(inArray($(".a").eq(2), [$(".b")]));          // false
console.log(inArray($(".a").eq(2), []));                 // false
console.log(inArray($(".c"), [$("div")]));               // true
                According to Felix's suggestion:
[$(selector1), $(selector2), ... ] can be simplified to 
$(selector1, selector2, ...)
or
$(selector1).add(selector2)...
and then it can be implemented as:
function inArray(item, arr) {
  return (arr.index(item) != -1);
}
Live demo here
what about
if(jQuery.inArray(some, array) === -1)
{
//process data if "some" is not in array
}
else
{
//process if "some" is in array
}
read here : http://api.jquery.com/jQuery.inArray/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With