Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Sort Array by Element Frequency by Assper
import assert from "assert";
function frequencySort(items: any[]): any[] {
const unique = [...new Set(items)]
return unique
.map(n => ({ value: n, count: items.filter(nn => nn === n).length }))
.sort((a, b) => b.count - a.count)
.reduce((acc, n) => acc.concat(Array(n.count).fill(n.value)), []);
}
console.log('Example:');
console.log(frequencySort([4, 6, 2, 2, 6, 4, 4, 4]));
// These "asserts" are used for self-checking and not for an auto-testing
assert.deepEqual(frequencySort([4, 6, 2, 2, 6, 4, 4, 4]), [4, 4, 4, 4, 6, 6, 2, 2]);
assert.deepEqual(frequencySort(['bob', 'bob', 'carl', 'alex', 'bob']), ['bob', 'bob', 'bob', 'carl', 'alex']);
assert.deepEqual(frequencySort([17, 99, 42]), [17, 99, 42]);
assert.deepEqual(frequencySort([]), []);
assert.deepEqual(frequencySort([4,6,2,2,2,6,4,4,4]), [4,4,4,4,2,2,2,6,6]);
assert.deepEqual(frequencySort([1]), [1]);
console.log("Coding complete? Click 'Check' to earn cool rewards!");
April 27, 2020
Comments: