リテラル値の配列から任意の要素を取得したいのであればindexOfでよいが、オブジェクトの配列で、オブジェクトの属性で検索して、オブジェクトそのものを得たい場合はそれが出来ない。
なので、こんな感じで取ってくるというのはどうだろう。
var objList = [{name:"aaa"},{name:"bbb"},{name:"ccc"},{name:"ddd"}]; var whereNameIs = function (name) { return function(i1, i2){ if (i1==null && i2.name==name) {return i2} else {return i1} }; } objList.reduce(whereNameIs("ccc"), null); // ... Object { name="ccc"} objList.reduce(whereNameIs("ccz"), null); // ... null