SO Answer / which approach is best to search object in array

See: http://stackoverflow.com/questions/16471207/which-approach-is-best-to-search-object-in-array

by KooiInc MeHere

HTML

<div id="result"></div>

CSS

body {font: 0.8em/1.3em normal verdana,arial; margin: 2em;}
code {color:green; font-size:12px;}
code:after {
    content: ' \2014> ';
    color: red;
    font-weight: bold;
    font-size: 15px;
}

h3 {border-bottom:1px solid #999; margin-bottom:0.3em;display:inline-block}

JavaScript

// create an array containing 100,000 small objects (see arfill function)
var someArr = createArray.call([],100000,arfill);

// assign some custom values, to demonstrate that
// the findArray method can be used for all types
someArr[50] = [{a:1,b:2}];
someArr[1122] = 'Hello world';
someArr[3001] = 32;
someArr[33001] = 32;
someArr[3] = 32;
someArr[543] = /[a-z]/i;
someArr[1987] = createArray;

// some demo's
log('<h3>findInArray demo</h3>');
var now = new Date;
log('<code>findInArray(someArr,32)</code>',findInArray(someArr,32));
log('<code>findInArray(someArr,{idx:1000,some:2000})</code>',findInArray(someArr,{idx:1000,some:2000}));
log('<code>findInArray(someArr,{idx:49,some:100})</code> ',findInArray(someArr,{idx:49,some:100}));
log('<code>findInArray(someArr,[{a:1,b:2}])</code>',findInArray(someArr,[{a:1,b:2}]));
log('<code>findInArray(someArr,\'Hello world\')</code>',findInArray(someArr,'Hello world'));
log('<code>findInArray(someArr,\'Hello World\')</code>',findInArray(someArr,'Hello World'));
log('<code>findInArray(someArr,/[a-z]/i)</code>',findInArray(someArr,/[a-z]/i));
log('<code>findInArray(someArr,createArray)</code>',findInArray(someArr,createArray));
// find an object with property within the array
log('<code>findInArray(someArr,56,\'idx\')</code>',findInArray(someArr,56,'idx'));

// timing report
var time = new Date-now, average = ((time/9)^0);
log('9 searches took: ',time,'ms', '. Avarage time/search: ',
    average,'ms',' (average per array element: ',(time/900000).toFixed(5),'ms)' );

// find values and return the index(es) of found values
log('<h3>arrayIndexOf demo</h3>');
now = new Date;
log('<code>arrayIndexOf(someArr,56,\'idx\')</code>[',arrayIndexOf(someArr,56,'idx'),']');
log('<code>arrayIndexOf(someArr,32)</code>[',arrayIndexOf(someArr,32),']');
log('<code>arrayIndexOf(someArr,{idx:1000,some:2000})</code>[',arrayIndexOf(someArr,{idx:1000,some:2000}),']');
log('<code>arrayIndexOf(someArr,\'Hello World\')</code>[',arrayIndexOf(someArr,'Hello...