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
.
Returns true if the collection is empty.
import { NgEmptyPipeModule } from 'angular-pipes';
{{ [] | empty }}
<!-- true -->
{{ [1, 2, 3] | empty }}
<!-- false -->
Returns the first element of the collection, or undefined if the collection is empty.
import { NgHeadPipeModule } from 'angular-pipes';
{{ [] | head }}
<!-- undefined -->
{{ [1, 2, 3] | head }}
<!-- 1 -->
Returns every element but the last of the collection or empty array if the collection is empty.
import { NgInitialPipeModule } from 'angular-pipes';
{{ [] | initial }}
<!-- [] -->
{{ [1, 2, 3] | initial }}
<!-- [1, 2] -->
Joins an array into a string.
import { NgJoinPipeModule } from 'angular-pipes';
{{ [] | join }}
<!-- '' -->
{{ ['a', 'b', 'c'] | join }}
<!-- 'abc' -->
{{ ['a', 'b', 'c'] | join: '0' }}
<!-- 'a0b0c' -->
Returns the last element of the collection or undefined if the collection is empty.
import { NgLastPipeModule } from 'angular-pipes';
{{ [] | last }}
<!-- undefined -->
{{ ['a', 'b', 'c'] | last }}
<!-- 'c' -->
Returns every elements but the first of the collection or empty array if the collection is empty.
import { NgTailPipeModule } from 'angular-pipes';
{{ [] | tail }}
<!-- [] -->
{{ ['a', 'b', 'c'] | tail }}
<!-- ['b', 'c'] -->
Returns the collection keeping only one duplicate.
import { NgUniqPipeModule } from 'angular-pipes';
{{ [] | uniq }}
<!-- [] -->
{{ ['a', 'b', 'a'] | uniq }}
<!-- ['a', 'b'] -->
Returns the collection without the specified elements.
import { NgWithoutPipeModule } from 'angular-pipes';
{{ [1, 2, 3] | without: [1, 3] }}
<!-- [2] -->
Returns the intersection of two collection, works with deep equal.
import { NgIntersectionPipeModule } from 'angular-pipes';
{{ [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}] -->
Returns the union of two collection, works with deep equal.
import { NgUnionPipeModule } from 'angular-pipes';
{{ [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 }] -->
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 { NgRangePipeModule } from 'angular-pipes';
<!-- {{ [] | 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] -->
Returns the collection that is passed through a map function. If no function is provided, the collection is returned unchanged.
import { NgMapPipeModule } from 'angular-pipes';
// ...
addOne (item) {
return item + 1;
}
// ...
{{ [1, 2, 3] | map: addOne }}
<!-- [2, 3, 4] -->
Returns an array of the given property of the object in the array.
import { NgPluckPipeModule } from 'angular-pipes';
// ...
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] -->
Filter an array with a given function or a property shorthand.
import { NgWherePipeModule } from 'angular-pipes';
// ...
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 { NgFirstOrDefaultPipeModule } from 'angular-pipes';
// ...
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 -->
Returns a new ordered array. You can order by multiple properties, ascending and descending.
import { NgOrderByPipeModule } from 'angular-pipes';
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) -->
Returns a reversed array.
import { NgReversePipeModule } from 'angular-pipes';
{{ [1, 2, 3, 4] | reverse }}
<!-- [4, 3, 2, 1] -->
Returns the length of the collection. Useful when used with other pipes, otherwise, use the length
property.
Works also for object and string.
import { NgCountPipeModule } from 'angular-pipes';
{{ [1, 2, 3, 4] | count }}
<!-- 4 -->
Returns true if at least one of the item in the collections pass the predicate.
import { NgSomePipeModule } from 'angular-pipes';
const predicate = function(item) {
return item === 2;
};
{{ [1, 2, 3, 4] | some: predicate }}
<!-- true -->
{{ [1, 3, 3, 4] | some: predicate }}
<!-- false -->
Returns true if every item in the collections pass the predicate.
import { NgEveryPipeModule } from 'angular-pipes';
const predicate = function(item) {
return item === 2;
};
{{ [1, 2, 3, 4] | every: predicate }}
<!-- false -->
{{ [2, 2, 2, 2] | every: predicate }}
<!-- true -->
Shuffles a collection.
import { NgShufflePipeModule } from 'angular-pipes';
{{ [1, 2, 3] | shuffle }}
<!-- random order... -->
Take the top n
items of an array.
import { NgTakePipeModule } from 'angular-pipes';
{{ [1, 2, 3, 4] | take }}
<!-- [1] -->
{{ [1, 2, 3, 4] | take: 2 }}
<!-- [1, 2] -->
Take until the condition is met.
import { NgTakeUntilPipeModule } from 'angular-pipes';
function predicate(item: any) {
return item >= 4;
}
{{ [1, 2, 3, 4] | takeUntil: predicate }}
<!-- [1, 2, 3] -->
Take while the condition is met.
import { NgTakeWhilePipeModule } from 'angular-pipes';
function predicate(item: any) {
return item < 4;
}
{{ [1, 2, 3, 4] | takeWhile }}
<!-- [1, 2, 3] -->
Drop the last n
items of an array.
import { NgDropPipeModule } from 'angular-pipes';
{{ [1, 2, 3, 4] | drop }}
<!-- [2, 3, 4] -->
{{ [1, 2, 3, 4] | drop: 2 }}
<!-- [3, 4] -->
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 { NgDeepPipeModule } from 'angular-pipes';
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 } }] -->
The chunk
pipe breaks the array into multiple, smaller arrays of a given size:
import { NgChunkPipeModule } from 'angular-pipes';
{{ [1, 2, 3, 4] | chunk }}
<!-- [[1],[2], [3], [4]] -->
{{ [1, 2, 3, 4] | chunk: 2 }}
<!-- [[1, 2], [3, 4]] -->
The flatten
flattens an array. It can be used with the deep
pipe.
import { NgFlattenPipeModule } from 'angular-pipes';
{{ [[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] -->