/** * 配列に対してSQLのdistinct句的なことをするやつ * @param fields distinctする対象のフィールドの名前を配列で * @return filterメソッドに渡すためのfunctionを返す */ function distinct(fieldNames) { var self = this; return function(item, i, arr) { return i == indexOf(arr, item, equalsAllFields) } // arrのなかにobjが含まれていればそのインデックス番号を返す // 探し方はcomparatorを使って探す function indexOf(arr, obj, comparator) { for(var index in arr) { if(comparator(obj, arr[inde