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...