ui
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function mode(key) {
|
||||
var values = [];
|
||||
var highestCount = 1;
|
||||
|
||||
if (!this.items.length) {
|
||||
return null;
|
||||
}
|
||||
|
||||
this.items.forEach(function (item) {
|
||||
var tempValues = values.filter(function (value) {
|
||||
if (key !== undefined) {
|
||||
return value.key === item[key];
|
||||
}
|
||||
|
||||
return value.key === item;
|
||||
});
|
||||
|
||||
if (!tempValues.length) {
|
||||
if (key !== undefined) {
|
||||
values.push({ key: item[key], count: 1 });
|
||||
} else {
|
||||
values.push({ key: item, count: 1 });
|
||||
}
|
||||
} else {
|
||||
tempValues[0].count += 1;
|
||||
var count = tempValues[0].count;
|
||||
|
||||
|
||||
if (count > highestCount) {
|
||||
highestCount = count;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return values.filter(function (value) {
|
||||
return value.count === highestCount;
|
||||
}).map(function (value) {
|
||||
return value.key;
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user