|
|
- '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;
- });
- };
|