MCPcopy Create free account
hub / github.com/cafebazaar/blacksmith / filterFilter

Function filterFilter

web/static/bower_components/angular/angular.js:18385–18419  ·  view source on GitHub ↗

* @ngdoc filter * @name filter * @kind function * * @description * Selects a subset of items from `array` and returns it as a new array. * * @param {Array} array The source array. * @param {string|Object|function()} expression The predicate to be used for selecting items from * `array`.

()

Source from the content-addressed store, hash-verified

18383 </example>
18384 */
18385function filterFilter() {
18386 return function(array, expression, comparator) {
18387 if (!isArrayLike(array)) {
18388 if (array == null) {
18389 return array;
18390 } else {
18391 throw minErr('filter')('notarray', 'Expected array but received: {0}', array);
18392 }
18393 }
18394
18395 var expressionType = getTypeForFilter(expression);
18396 var predicateFn;
18397 var matchAgainstAnyProp;
18398
18399 switch (expressionType) {
18400 case 'function':
18401 predicateFn = expression;
18402 break;
18403 case 'boolean':
18404 case 'null':
18405 case 'number':
18406 case 'string':
18407 matchAgainstAnyProp = true;
18408 //jshint -W086
18409 case 'object':
18410 //jshint +W086
18411 predicateFn = createPredicateFn(expression, comparator, matchAgainstAnyProp);
18412 break;
18413 default:
18414 return array;
18415 }
18416
18417 return Array.prototype.filter.call(array, predicateFn);
18418 };
18419}
18420
18421// Helper functions for `filterFilter`
18422function createPredicateFn(expression, comparator, matchAgainstAnyProp) {

Callers

nothing calls this directly

Calls 4

isArrayLikeFunction · 0.85
minErrFunction · 0.85
getTypeForFilterFunction · 0.85
createPredicateFnFunction · 0.85

Tested by

no test coverage detected