Skip to content

Commit 58c4d6a

Browse files
committed
Added group_by function
1 parent b7953b7 commit 58c4d6a

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,21 @@ function find_key_and_update(arr, parent_key, parent_value, target_key, target_v
485485
return arr;
486486
}
487487

488+
/**
489+
* Group by key in array of object
490+
*
491+
* @param array arr
492+
* @param string key
493+
* @returns object
494+
*/
495+
function group_by(arr, key) {
496+
is_array(arr)
497+
return arr.reduce(function (rv, x) {
498+
(rv[x[key]] = rv[x[key]] || []).push(x);
499+
return rv;
500+
}, {});
501+
}
502+
488503
export {
489504
is_array,
490505
is_num_array,
@@ -512,4 +527,5 @@ export {
512527
get_rms_value,
513528
find_key_and_update,
514529
find_and_update,
530+
group_by,
515531
};

0 commit comments

Comments
 (0)