Browse Source

Added method distinct

css_transitions
josdejong 11 years ago
parent
commit
a28c3640e1
1 changed files with 37 additions and 1 deletions
  1. +37
    -1
      src/dataset.js

+ 37
- 1
src/dataset.js View File

@ -377,7 +377,7 @@ DataSet.prototype.clear = function (senderId) {
/**
* Find the item with maximum value of a specified field
* @param {String} field
* @return {Object} item Item containing max value, or null if no items
* @return {Object | null} item Item containing max value, or null if no items
*/
DataSet.prototype.max = function (field) {
var data = this.data,
@ -400,6 +400,7 @@ DataSet.prototype.max = function (field) {
/**
* Find the item with minimum value of a specified field
* @param {String} field
* @return {Object | null} item Item containing max value, or null if no items
*/
DataSet.prototype.min = function (field) {
var data = this.data,
@ -419,6 +420,41 @@ DataSet.prototype.min = function (field) {
return min;
};
/**
* Find all distinct values of a specified field
* @param {String} field
* @return {Array} values Array containing all distinct values. If the data
* items do not contain the specified field, an array
* containing a single value undefined is returned.
* The returned array is unordered.
*/
DataSet.prototype.distinct = function (field) {
var data = this.data,
values = [],
fieldType = this.options.fieldTypes[field],
count = 0;
for (var prop in data) {
if (data.hasOwnProperty(prop)) {
var item = data[prop];
var value = util.cast(item[field], fieldType);
var exists = false;
for (var i = 0; i < count; i++) {
if (values[i] == value) {
exists = true;
break;
}
}
if (!exists) {
values[count] = value;
count++;
}
}
}
return values;
};
/**
* Add a single item
* @param {Object} item

Loading…
Cancel
Save