ice.fo.utils
Version:
42 lines (36 loc) • 1.39 kB
TypeScript
declare module "ice.fo.utils/Array" {
/**
* Group a list of objects by [key] name. The [key] also supports properties path access e.g. 'user.profile.name'
*
* @example
* groupByKey([{name: 'nikochin', age: 10}, {name: 'nikochin', age: 30}, {name: 'edward', age: 10}], 'name', true); // returns [ [{name: 'nikochin', age: 10}, {name: 'nikochin', age: 30}], [{name: 'edward', age: 10}] ]
*
* @param {any[]} list
* @param {string|string[]} key
* @param {boolean} keepOrder
* @returns An list of objects list grouped by key
*/
export function groupByKey(list: any[], key: any, keepOrder: boolean = false);
/**
* Merge 2 array and remove previous duplicate
*
* @param {any[]} a
* @param {any[]} b
* @param {(any) => string} indicator
* @returns
*/
export function mergeUnique(a: any, b: any, indicator: any);
/**
* Creates an array of elements split into groups with length size. If array can't be split evenly, the final chunk will be the remaining elements.
*
* @example
* splitIntoChunks([1,2,3,4], 2); // returns [ [1,2], [3,4] ]
* splitIntoChunks([1,2,3,4], 3); // returns [ [1,2,3], [4] ]
* splitIntoChunks([1,2,3,4], 5); // returns [ [1,2,3,4] ]
*
* @param array
* @param length
* @returns {[]}
*/
export function splitIntoChunks(array: any[], length: number);
}