# Class FilteringCollection

- [TopLevel.Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)
  - [dw.util.Collection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md)
    - [dw.util.FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)

[FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) is an extension of
[Collection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md) which provides possibilities to

- \_filter_the elements to return a new  [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)with a filtered set of elements
- \_sort_the elements to return a new  [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)with a defined sort order
- \_transform_the elements to return a new  [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)containing related elements
- \_provide a map_of the elements against a predefined key

**Usage** - In the current version each
[FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) provides a set of predefined
*qualifier* constants which can be passed into the
[select(Object)](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#selectobject) method used to *filter* the elements. Generally
*qualifiers* have the prefix *QUALIFIER\_*. A second method
[sort(Object)](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#sortobject) is used to create a new instance with a different
element ordering, which takes an *orderB<* constant. Generally
*orderBys* have the prefix ORDERBY\_: examples are
[ShippingOrder.ORDERBY_ITEMID](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.ShippingOrder.md#orderby_itemid),
[ShippingOrder.ORDERBY_ITEMPOSITION](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.ShippingOrder.md#orderby_itemposition), and [ORDERBY_REVERSE](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#orderby_reverse) can
be used to provide a [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) with the reverse
ordering. An example with method [ShippingOrder.getItems()](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.order.ShippingOrder.md#getitems):

\`

var allItems     : FilteringCollection = shippingOrder.items;

var productItems : FilteringCollection = allItems.select(ShippingOrder.QUALIFIER_PRODUCTITEMS);

var serviceItems : FilteringCollection = allItems.select(ShippingOrder.QUALIFIER_SERVICEITEMS);

var byPosition   : FilteringCollection = productItems.sort(ShippingOrder.ORDERBY_ITEMPOSITION);

var revByPosition: FilteringCollection = byPosition.sort(FilteringCollection.ORDERBY_REVERSE);

var mapByItemID  : Map = allItems.asMap();
\`

## Constant Summary

| Constant                                                                                                                | Description                                                                                                                                                                                                                                                                                                     |
| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ORDERBY_REVERSE](#orderby_reverse): [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md) | Pass this *orderBy* with the [sort(Object)](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#sortobject) method to  obtain a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) with the reversed sort  order. |

## Constructor Summary

This class does not have a constructor, so you cannot create it directly.

## Method Summary

| Method                                                                                                                                                                                          | Description                                                                                                                                                                                                                                                  |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [asMap](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#asmap)()                                                                                           | Returns a [Map](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Map.md) containing the elements of this  [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) against a predefined key. |
| [select](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#selectobject)([Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)) | Select a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) instance by passing a  predefined *qualifier* as an argument to this method.                                                        |
| [sort](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#sortobject)([Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md))     | Select a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) instance by passing a  predefined *orderBy* as an argument to this method.                                                          |

### Methods inherited from class Collection

[add](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#addobject), [add1](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#add1object), [addAll](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#addallcollection), [clear](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#clear), [contains](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#containsobject), [containsAll](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#containsallcollection), [getLength](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#getlength), [isEmpty](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#isempty), [iterator](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#iterator), [remove](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#removeobject), [removeAll](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#removeallcollection), [retainAll](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#retainallcollection), [size](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#size), [toArray](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#toarray), [toArray](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Collection.md#toarraynumber-number)

### Methods inherited from class Object

[assign](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#assignobject-object), [create](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#createobject), [create](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#createobject-object), [defineProperties](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#definepropertiesobject-object), [defineProperty](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#definepropertyobject-object-object), [entries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#entriesobject), [freeze](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#freezeobject), [fromEntries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#fromentriesiterable), [getOwnPropertyDescriptor](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertydescriptorobject-object), [getOwnPropertyNames](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertynamesobject), [getOwnPropertySymbols](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertysymbolsobject), [getPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getprototypeofobject), [hasOwnProperty](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#hasownpropertystring), [is](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isobject-object), [isExtensible](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isextensibleobject), [isFrozen](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isfrozenobject), [isPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isprototypeofobject), [isSealed](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#issealedobject), [keys](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#keysobject), [preventExtensions](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#preventextensionsobject), [propertyIsEnumerable](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#propertyisenumerablestring), [seal](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#sealobject), [setPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#setprototypeofobject-object), [toLocaleString](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#tolocalestring), [toString](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#tostring), [valueOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#valueof), [values](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#valuesobject)

## Constant Details

### ORDERBY_REVERSE

- ORDERBY_REVERSE: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)
  - : Pass this *orderBy* with the [sort(Object)](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md#sortobject) method to
    obtain a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) with the reversed sort
    order. Only use on a [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) which has been
    previously sorted.

***

## Method Details

### asMap()

- asMap(): [Map](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Map.md)
  - : Returns a [Map](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Map.md) containing the elements of this
    [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) against a predefined key. The key
    used is documented in the method returning the
    [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) and is typically the ItemID assigned
    to an element in the collection.

    **Returns:**

    - a [Map](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.Map.md) containing the elements of this
      [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) against a predefined key.

***

### select(Object)

- select(qualifier: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)
  - : Select a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) instance by passing a
    predefined *qualifier* as an argument to this method. See
    [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md).

    **Parameters:**

    - qualifier - possible qualifiers are documented in the method returning the [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)

    **Returns:**

    - a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) instance

***

### sort(Object)

- sort(orderBy: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)
  - : Select a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) instance by passing a
    predefined *orderBy* as an argument to this method. See
    [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md).

    **Parameters:**

    - orderBy - possible orderBys are documented in the method returning the [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md)

    **Returns:**

    - a new [FilteringCollection](/docs/commerce/b2c-commerce/references/b2c-script-api/dw.util.FilteringCollection.md) instance

***
