parent
9fc24b9c52
commit
bfbf18d983
|
@ -22,11 +22,6 @@ class QueryList<T> extends Object
|
|||
return _results.toString();
|
||||
}
|
||||
|
||||
List map(fn(T)) {
|
||||
// Note: we need to return a list instead of iterable to match JS.
|
||||
return this._results.map(fn).toList();
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
void reset(List<T> newList) {
|
||||
_results = newList;
|
||||
|
|
|
@ -37,10 +37,25 @@ export class QueryList<T> {
|
|||
get last(): T { return ListWrapper.last(this._results); }
|
||||
|
||||
/**
|
||||
* returns a new list with the passsed in function applied to each element.
|
||||
* returns a new array with the passed in function applied to each element.
|
||||
*/
|
||||
map<U>(fn: (item: T) => U): U[] { return this._results.map(fn); }
|
||||
|
||||
/**
|
||||
* returns a filtered array.
|
||||
*/
|
||||
filter(fn: (item: T) => boolean): T[] { return this._results.filter(fn); }
|
||||
|
||||
/**
|
||||
* returns a reduced value.
|
||||
*/
|
||||
reduce<U>(fn: (acc: U, item: T) => U, init: U): U { return this._results.reduce(fn, init); }
|
||||
|
||||
/**
|
||||
* converts QueryList into an array
|
||||
*/
|
||||
toArray(): T[] { return ListWrapper.clone(this._results); }
|
||||
|
||||
[getSymbolIterator()](): any { return this._results[getSymbolIterator()](); }
|
||||
|
||||
toString(): string { return this._results.toString(); }
|
||||
|
|
|
@ -10,6 +10,7 @@ import {
|
|||
fakeAsync,
|
||||
tick
|
||||
} from 'angular2/testing_internal';
|
||||
import {IS_DART} from '../../platform';
|
||||
|
||||
import {MapWrapper, ListWrapper, iterateListLike} from 'angular2/src/core/facade/collection';
|
||||
import {StringWrapper} from 'angular2/src/core/facade/lang';
|
||||
|
@ -46,6 +47,28 @@ export function main() {
|
|||
expect(queryList.map((x) => x)).toEqual(['one', 'two']);
|
||||
});
|
||||
|
||||
if (!IS_DART) {
|
||||
it('should support filter', () => {
|
||||
queryList.reset(['one', 'two']);
|
||||
expect((<any>queryList).filter((x) => x == "one")).toEqual(['one']);
|
||||
});
|
||||
|
||||
it('should support reduce', () => {
|
||||
queryList.reset(["one", "two"]);
|
||||
expect((<any>queryList).reduce((a, x) => a + x, "start:")).toEqual("start:onetwo");
|
||||
});
|
||||
|
||||
it('should support toArray', () => {
|
||||
queryList.reset(["one", "two"]);
|
||||
expect((<any>queryList).reduce((a, x) => a + x, "start:")).toEqual("start:onetwo");
|
||||
});
|
||||
|
||||
it('should support toArray', () => {
|
||||
queryList.reset(["one", "two"]);
|
||||
expect((<any>queryList).toArray()).toEqual(["one", "two"]);
|
||||
});
|
||||
}
|
||||
|
||||
it('should support toString', () => {
|
||||
queryList.reset(['one', 'two']);
|
||||
var listString = queryList.toString();
|
||||
|
|
Loading…
Reference in New Issue