This will return an object with a numeric value containing the specified number.
var objGroup = [ { "color": "YELLOW", "number": "11,7,44,22" }, { "color": "BLUE", "number": "8,20,9" }, { "color": "GREEN", "number": "12,34,55" } ]; var found = findItem(objGroup, '11'); function findItem(array, value) { for (var i = 0; i < array.length; i++) { if (array[i].number.split(',').indexOf(value) >= 0) { return objGroup[i]; } } } if (found) { alert(found.color); }
http://jsfiddle.net/rVPu5/
An alternative using the newer .filter function, which will not be supported so widely:
var found = objGroup.filter(function(item) { if (item.number.split(',').indexOf('11') >= 0) { return true; } return false; }); if (found.length > 0) { alert(found[0].color); }
http://jsfiddle.net/rVPu5/2/
Finally is the jQuery version:
var found = $.map(objGroup, function(item) { if (item.number.split(',').indexOf('11') >= 0) { return item; } }); if (found.length > 0) { alert(found[0].color); }
http://jsfiddle.net/rVPu5/3/
source share