static/ext/src/util/AbstractMixedCollection.js
function(property, root, allowNull) {
        var values = this.extractValues(property, root),
            length = values.length,
            hits   = {},
            unique = [],
            value, strValue, i;

        for (i = 0; i < length; i++) {
            value = values[i];
            strValue = String(value);

            if ((allowNull || !Ext.isEmpty(value)) && !hits[strValue]) {
                hits[strValue] = true;
                unique.push(value);
            }
        }

        return unique;
    }
function(property, root, allowNull) {
        var values = this.extractValues(property, root),
            length = values.length,
            hits   = {},
            unique = [],
            value, strValue, i;

        for (i = 0; i < length; i++) {
            value = values[i];
            strValue = String(value);

            if ((allowNull || !Ext.isEmpty(value)) && !hits[strValue]) {
                hits[strValue] = true;
                unique.push(value);
            }
        }

        return unique;
    }
function ( property , root , allowNull ) { var values = this . extractValues ( property , root ) , length = values . length , hits = { } , unique = [ ] , value , strValue , i ; for ( i = 0 ; i < length ; i ++ ) { value = values [ i ] ; strValue = String ( value ) ; if ( ( allowNull || ! Ext . isEmpty ( value ) ) && ! hits [ strValue ] ) { hits [ strValue ] = true ; unique . push ( value ) ; } } return unique ; }
Collects unique values of a particular property in this MixedCollection
@param {String} property The property to collect on
@param {String} root (optional) 'root' property to extract the first argument from. This is used mainly when
summing fields in records, where the fields are all stored inside the 'data' object
@param {Boolean} allowBlank (optional) Pass true to allow null, undefined or empty string values
@return {Array} The unique values
Collects unique values of a particular property in this MixedCollection