LeetCode/js/group-by.js

24 lines
395 B
JavaScript
Raw Normal View History

/**
* @param {Function} fn
* @return {Array}
*/
Array.prototype.groupBy = function(fn) {
let grouped = new Object();
for (let x of this) {
let key = fn(x);
if (grouped[key] === undefined) {
grouped[key] = new Array();
}
grouped[key].push(x);
}
return grouped;
};
/**
* [1,2,3].groupBy(String) // {"1":[1],"2":[2],"3":[3]}
*/