javascript - which approach is best to search object in array? -


i've sorted following ways search object in array. question has been asked countless times want know of best following ways. if there's i'd know too.

using $.grep()

function is_in_array(arr,element){     var result = $.grep(arr, function(e){ return e.id == element; });     return result.length; } 

above function returns length of array.

  • 0 when element not present
  • 1 when element present
  • length > 1 if more elements same value present

using lookup object

var lookup = {}; (var = 0, len = array.length; < len; i++) {     lookup[array[i].id] = array[i]; } 

this way don't need traverse entire array each time. i'd check lookup[id] instead.

for loop in traditional way

function in_array(array, id) {     for(var i=0;i<array.length;i++) {         if(array[i].id === id) {             return true;         }     }     return false; } 

to check if element exists, i'd call in_array(arr,element).

which approach best ? question sounds duplicate , want make sure best these 3 only.

update

array contain objects --

var arr = []; var nameobj = {};  nameobj.label = "somename"; nameobj.id = 123; arr.push(nameobj); . . . 

you use combination of json (for comparison) , array.filter method:

var findvalue = json.stringify([somevalue]),     ,found = [array].filter(                function(a){return json.stringify(a) === findvalue;}).length ; // found > 0 means: findvalue found 

a jsfiddle example
more array.filter , shim older browsers @mdn


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -