empty
head
initial
join
last
tail
uniq
without
intersection
union
range
map
pluck
where
firstOrDefault
orderBy
reverse
count
some
every
shuffle
take
takeUntil
takeWhile
drop
deep
chunk
flatten
You can check the module import here
.
####empty
Returns true if the collection is empty.
import { EmptyPipe } from 'angular-pipes/src/array/empty.pipe';
{{ [] | empty }} <!-- true -->
{{ [1, 2, 3] | empty }} <!-- false -->
####head
Returns the first element of the collection, or undefined if the collection is empty.
import { HeadPipe } from 'angular-pipes/src/array/head.pipe';
{{ [] | head }} <!-- undefined -->
{{ [1, 2, 3] | head }} <!-- 1 -->
####initial
Returns every element but the last of the collection or empty array if the collection is empty.
import { InitialPipe } from 'angular-pipes/src/array/initial.pipe';
{{ [] | initial }} <!-- [] -->
{{ [1, 2, 3] | initial }} <!-- [1, 2] -->
####join
Joins an array into a string.
import { JoinPipe } from 'angular-pipes/src/array/join.pipe';
{{ [] | join }} <!-- '' -->
{{ ['a', 'b', 'c'] | join }} <!-- 'abc' -->
{{ ['a', 'b', 'c'] | join: '0' }} <!-- 'a0b0c' -->
####last
Returns the last element of the collection or undefined if the collection is empty.
import { LastPipe } from 'angular-pipes/src/array/last.pipe';
{{ [] | last }} <!-- undefined -->
{{ ['a', 'b', 'c'] | last }} <!-- 'c' -->
####tail
Returns every elements but the first of the collection or empty array if the collection is empty.
import { TailPipe } from 'angular-pipes/src/array/tail.pipe';
{{ [] | tail }} <!-- [] -->
{{ ['a', 'b', 'c'] | tail }} <!-- ['b', 'c'] -->
####uniq
Returns the collection keeping only one duplicate.
import { UniqPipe } from 'angular-pipes/src/array/uniq.pipe';
{{ [] | uniq }} <!-- [] -->
{{ ['a', 'b', 'a'] | uniq }} <!-- ['a', 'b'] -->
####without
Returns the collection without the specified elements.
import { WithoutPipe } from 'angular-pipes/src/array/without.pipe';
{{ [1, 2, 3] | without: [1, 3] }} <!-- [2] -->
####intersection
Returns the intersection of two collection, works with deep equal.
import { IntersectionPipe } from 'angular-pipes/src/array/intersection.pipe';
{{ [1, 2, 3] | intersection: [1, 2] }} <!-- [1, 2] -->
{{ [1, 2, 3] | intersection: [1, 2, 2] }} <!-- [1, 2] it does not take duplicates -->
{{ [1, 2] | intersection: [3, 4] }} <!-- [] -->
{{ [{ a: 1 }, { a: 2 }] | intersection: [{ a: 1 }, { a: 3 }] }} <!-- [] (no deep here)-->
{{ [{ a: 1 }, { a: 2 }] | deep | intersection: [{ a: 1 }, { a: 3 }] }} <!-- [{a: 1}] -->
####union
Returns the union of two collection, works with deep equal.
import { UnionPipe } from 'angular-pipes/src/array/union.pipe';
{{ [1, 2, 3] | union: [1, 2] }} <!-- [1, 2, 3] -->
{{ [1, 2] | union: [3, 4] }} <!-- [1, 2, 3, 4] -->
{{ [{ a: 1 }, { a: 2 }] | union: [{ a: 1 }, { a: 3 }] }} <!-- [{ a: 1 }, { a: 2 }, { a: 1 }, { a: 3 }] (no deep here)-->
{{ [{ a: 1 }, { a: 2 }] | deep | union: [{ a: 1 }, { a: 3 }] }} <!-- [{ a: 1 }, { a: 2 }, { a: 3 }] -->
####range
Returns a range of number with a given size (default: 0
) and start (default: 1
).
The value on the left hand size does not matter, it is ignored.
import { RangePipe } from 'angular-pipes/src/array/range.pipe';
<!-- {{ [] | range: size : start }} -->
{{ [] | range: 3: 1 }} <!-- [1, 2, 3] -->
{{ [] | range: 5: 0 }} <!-- [0, 1, 2, 3, 4] -->
{{ [] | range: 5: -2 }} <!-- [-2, -1, 0, 1, 2] -->
####map
Returns the collection that is passed through a map function. If no function is provided, the collection is returned unchanged.
import { MapPipe } from 'angular-pipes/src/array/map.pipe';
// ...
addOne (item) {
return item + 1;
}
// ...
{{ [1, 2, 3] | map: addOne }} <!-- [2, 3, 4] -->
####pluck
Returns an array of the given property of the object in the array.
import { PluckPipe } from 'angular-pipes/src/array/pluck.pipe';
// ...
const values = [{
a: 1,
c: {
d: 3,
e: {
f: 4
}
}
}, {
a: 2,
c: {
d: 4,
e: {
f: 5
}
}
}];
// ...
{{ values | pluck: 'a' }} <!-- [1, 2] -->
{{ values | pluck: 'c.d' }} <!-- [3, 4] -->
{{ values | pluck: 'c.e.f' }} <!-- [4, 5] -->
{{ values | pluck: 'c.e.f.g' }} <!-- [undefined, undefined] -->
####where
Filter an array with a given function or a property shorthand.
import { WherePipe } from 'angular-pipes/src/array/where.pipe';
// ...
const values = [{
a: 1,
c: {
d: 3,
e: {
f: 4
}
}
}, {
a: 2,
c: {
d: 4,
e: {
f: 5
}
}
}];
const numbers = [1, 2, 3, 4, 1, 4];
// ...
aEqualsOne(item) {
return item.a === 1;
}
{{ values | where: aEqualsOne }} <!-- [{ a: 1, c: { d: 3, e: { f: 4 } }] -->
{{ values | where: ['a', 1] }} <!-- [{ a: 1, c: { d: 3, e: { f: 4 } }] -->
{{ values | where: ['c.e.f', 4] }} <!-- [{ a: 1, c: { d: 3, e: { f: 4 } }] -->
{{ numbers | where: 1 }} <!-- [1, 1] -->
###firstOrDefault
This pipe behaves exactly like where
but only return the first element when is found. A default value can be provided if no
such element exists.
import { FirstOrDefaultPipe } from 'angular-pipes/src/array/first-or-default.pipe';
// ...
const values = [{
a: 1,
c: {
d: 3,
e: {
f: 4
}
}
}, {
a: 2,
c: {
d: 4,
e: {
f: 5
}
}
}];
const numbers = [1, 2, 3, 4, 1, 4];
// ...
aEqualsOne(item) {
return item.a === 1;
}
{{ values | firstOrDefault: aEqualsOne }} <!-- { a: 1, c: { d: 3, e: { f: 4 } }]-->
{{ values | firstOrDefault: ['a', 1] }} <!-- { a: 1, c: { d: 3, e: { f: 4 } } -->
{{ values | firstOrDefault: ['c.e.f', 4] }} <!-- { a: 1, c: { d: 3, e: { f: 4 } } -->
{{ numbers | firstOrDefault: 1 }} <!-- 1 -->
{{ numbers | firstOrDefault: 5 : 42 }} <!-- 42 -->
{{ numbers | firstOrDefault: 5 }} <!-- undefined -->
####orderBy
Returns a new ordered array. You can order by multiple properties, ascending and descending.
import { OrderByPipe } from 'angular-pipes/src/array/order-by.pipe';
const values = [
{ a: 1, b: 2 },
{ a: 2, b: 1 },
{ a: 5, b: 3 },
{ a: 4, b: 8 }
]
{{ [1, 4, 3, 2] | orderBy }} <!-- [1, 2, 3, 4] -->
{{ [1, 4, 3, 2] | orderBy: '-' }} <!-- [4, 3, 2, 1] -->
{{ values | orderBy: 'a' }} <!-- Will order the values by a (asc) -->
{{ values | orderBy: '+a' }} <!-- Will order the values by a (asc)-->
{{ values | orderBy: ['a'] }} <!-- Will order the values by a (asc)-->
{{ values | orderBy: '-a' }} <!-- Will order the values by a (desc)-->
{{ values | orderBy: ['-a', 'b'] }} <!-- Will order the values by a (desc) and b (asc) -->
{{ values | orderBy: ['-a', '+b'] }} <!-- Will order the values by a (desc) and b (asc) -->
{{ values | orderBy: ['-a', '-b'] }} <!-- Will order the values by a (desc) and b (desc) -->
####reverse
Returns a reversed array.
import { ReversePipe } from 'angular-pipes/src/array/reverse.pipe';
{{ [1, 2, 3, 4] | reverse }} <!-- [4, 3, 2, 1] -->
####count
Returns the length of the collection. Useful when used with other pipes, otherwise, use the length
property.
Works also for object and string.
import { CountPipe } from 'angular-pipes/src/array/count.pipe';
{{ [1, 2, 3, 4] | count }} <!-- 4 -->
####some
Returns true if at least one of the item in the collections pass the predicate.
import { SomePipe } from 'angular-pipes/src/array/some.pipe';
const predicate = function (item) {
return item === 2;
};
{{ [1, 2, 3, 4] | some: predicate }} <!-- true -->
{{ [1, 3, 3, 4] | some: predicate }} <!-- false -->
####every
Returns true if every item in the collections pass the predicate.
import { EveryPipe } from 'angular-pipes/src/array/every.pipe';
const predicate = function (item) {
return item === 2;
};
{{ [1, 2, 3, 4] | every: predicate }} <!-- false -->
{{ [2, 2, 2, 2] | every: predicate }} <!-- true -->
####shuffle
Shuffles a collection.
import { ShufflePipe } from 'angular-pipes/src/array/shuffle.pipe';
{{ [1, 2, 3] | shuffle }} <!-- random order... -->
####take
Take the top n
items of an array.
import { TakePipe } from 'angular-pipes/src/array/take.pipe';
{{ [1, 2, 3, 4] | take }} <!-- [1] -->
{{ [1, 2, 3, 4] | take: 2 }} <!-- [1, 2] -->
####takeUntil
Take until the condition is met.
import { TakeUntilPipe } from 'angular-pipes/src/array/take-until.pipe';
function predicate (item: any) {
return item >= 4;
}
{{ [1, 2, 3, 4] | takeUntil: predicate }} <!-- [1, 2, 3] -->
####takeWhile
Take while the condition is met.
import { TakeWhilePipe } from 'angular-pipes/src/array/take-while.pipe';
function predicate (item: any) {
return item < 4;
}
{{ [1, 2, 3, 4] | takeWhile }} <!-- [1, 2, 3] -->
####drop
Drop the last n
items of an array.
import { DropPipe } from 'angular-pipes/src/array/drop.pipe';
{{ [1, 2, 3, 4] | drop }} <!-- [2, 3, 4] -->
{{ [1, 2, 3, 4] | drop: 2 }} <!-- [3, 4] -->
####deep
The deep
pipe is different from other pipes, it doesn't return new data. It wraps data for other pipes to work
with deep comparaisons.
import { DeepPipe } from 'angular-pipes/src/array/deep.pipe';
collection: any[] = [
{ a: 1, b: { c: 2 } },
{ a: 1, b: { c: 2 } },
{ a: 1, b: { c: 3 } },
];
{{ collection | uniq }} <!-- The all collection (deep equal not working) -->
{{ collection | deep | uniq }} <!-- [{ a: 1, b: { c: 3 } }] -->
####chunk
The chunk
pipe breaks the array into multiple, smaller arrays of a given size:
import { ChunkPipe } from 'angular-pipes/src/array/chunk.pipe';
{{ [1, 2, 3, 4] | chunk }} <!-- [[1],[2], [3], [4]] -->
{{ [1, 2, 3, 4] | chunk: 2 }} <!-- [[1, 2], [3, 4]] -->
####flatten
The flatten
flattens an array. It can be used with the deep
pipe.
import { FlattenPipe } from 'angular-pipes/src/array/flatten.pipe';
{{ [[1, 2, 3, 4]] | flatten }} <!-- [1, 2, 3, 4] -->
{{ [[1, 2, 3, [4]] | flatten }} <!-- [1, 2, 3, [4]] -->
{{ [[1, 2, 3, [4]] | deep | flatten }} <!-- [1, 2, 3, 4] -->