Array.reduceで指定条件に一致するオブジェクトを取得する

リテラル値の配列から任意の要素を取得したいのであれば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