<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
let arr = []
for(let i = 0; i < 100000;i++) {
arr.push(Math.floor(Math.random()*100))
}
const result = arr.reduce((acc, curr) => {
acc[curr] ??= {[curr]: 0};
acc[curr][curr]++;
return acc;
}, {});
const uniqueVals = [...new Set(arr)];
const countPerUniqueValArray = uniqueVals.map(uv => arr.filter(i => i === uv).length);
const res = arr.reduce((acc, curr) => {
acc[curr] = -~acc[curr];
return acc;
}, {});
const hash = Object.fromEntries([ ...arr.reduce((map, key) => map.set(key, (map.get(key) || 0) + 1), new Map()) ]);
const frequency = _.map(_.groupBy(arr), val => ({ value: val[0], frequency: val.length }));
const map = arr.reduce((acc, e) => acc.set(e, (acc.get(e) || 0) + 1), new Map());
const map = {};
for ( var i = 0; i < arr.length; i++ ) {
map[arr[i]] = ~~map[arr[i]] + 1;
}