UNPKG

ice.fo.utils

Version:

42 lines (36 loc) 1.39 kB
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); }