/** * Iterable object like string, Array, Map, Set, Generator iterable... * @private * @typedef {Object} Iterable */ /** * This function will be call every element of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @example * forEach('test', (v, k) => console.log(v)); // 't', 'e', 's', 't' */ export function forEach(v: Iterable | any, callback: Function, context?: any): void; /** * This function converts an any value to new an array object * @param {*} v An any value * @param {function} [callback] Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {Array} * @example * toArrayAll(undefined) // [undefined] */ export function toArrayAll(v: any, callback?: Function, context?: any): any[]; /** * This function converts an iterable object or a plain object to new an array object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} [callback] Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {Array} * @example * toArray({ x: 1, y: 2, z: 3 }); // [{ k: 'x', v: 1 }, { k: 'y', v: 2 }, { k: 'z', v: 3 }] */ export function toArray(v: Iterable | any, callback?: Function, context?: any): any[]; /** * This function returns new an array object which includes an every arguments * @param {*} values Values which will be included * @returns {Array} * @example * of(1, 2, 3, 4); // [1, 2, 3, 4] */ export function of(...values: any): any[]; /** * This function returns new an array object which merged as an argument values * @param {Iterable|Object} v An iterable object or a plain object * @param {*} values Values which will be merged * @returns {Array} * @example * concat({ x: 1, y: 2, z: 3 }, { xx: 1, yy: 2, zz: 3 }, { xxx: 1, yyy: 2, zzz: 3 }) // [{ k: 'x', 1 } ... { k: 'xxx', v: 1 }]) */ export function concat(v: Iterable | any, ...values: any): any[]; /** * This function returns index of found value from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {number} [fromIndex=0] Start index which will be search * @returns {number} * @example * indexOf([1, 2, 3], v => v === 2); // 1 */ export function indexOf(v: Iterable | any, callback: Function, fromIndex?: number): number; /** * This function returns index of found value from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {number} [fromIndex=Iterable.length - 1] Start index which will be search from last index * @returns {number} * @example * lastIndexOf([1, 2, 3], v => v === 3); // 2 */ export function lastIndexOf(v: Iterable | any, callback: Function, fromIndex?: number): number; /** * This function returns joined value as a separator from every elements of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {*} separator separate value * @returns {string} * @example * join({ x: 1, y: 2, z: 3 }, '-') // '1-2-3' */ export function join(v: Iterable | any, separator: any): string; /** * This function returns index of found value from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @returns {Array} * @example * keys([1, , 3]) // [0, 1, 2] */ export function keys(v: Iterable | any): any[]; /** * This function returns index of found value from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @returns {Array} * @example * values({ x: 1, y: 2, z: 3 }) // [1, 2, 3] */ export function values(v: Iterable | any): any[]; /** * This function returns new array object which included every elements copied from start index until end index * @param {Iterable|Object} v An iterable object or a plain object * @param {number} targetIndex Target index which to copied * @param {number} [start=0] Start index which to start copying * @param {number} [end=Iterable.length] End index which to end copying * @returns {Array} * @example * copyWithin({ x: 1, y: '2', z: 3 }, 0, 1, 2) // [ { k: 'y', v: '2' }, { k: 'y', v: '2' }, { k: 'z', v: 3 } ] */ export function copyWithin(v: Iterable | any, targetIndex: number, start?: number, end?: number): any[]; /** * This function filters given an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} [callback] Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {Array} * @example * filter(['1', 2, 3], v => typeof v === 'number') // [2, 3] */ export function filter(v: Iterable | any, callback?: Function, context?: any): any[]; /** * This function returns a true when match condition of callback function to every elements of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} [callback] Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {boolean} * @example * every([1, 2, 3], v => typeof v === 'number') // true */ export function every(v: Iterable | any, callback?: Function, context?: any): boolean; /** * This function returns a true when match condition of callback function to some elements of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} [callback] Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {boolean} * @example * some(['1', 2, 3], v => typeof v === 'number') // true */ export function some(v: Iterable | any, callback?: Function, context?: any): boolean; /** * This function returns new array object which filled a value from start index until end index * @param {Iterable|Object} v An iterable object or a plain object * @param {*} vv Value which will be filled * @param {number} [start=0] Start index * @param {number} [end=Iterable.length] End index * @returns {Array} * @example * fill({ x: 11, y: 22, z: 33 }, 7, 0, 2) // [ 7, 7, { k: 'z', v: 33 } ] */ export function fill(v: Iterable | any, vv: any, start?: number, end?: number): any[]; /** * This function returns a first element found from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {*} * @example * find(['1', 2, 3], v => typeof v === 'number') // 2 */ export function find(v: Iterable | any, callback: Function, context?: any): any; /** * This function returns an index of first element found from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {number} * @example * findIndex(['1', 2, 3], v => typeof v === 'number') // 1 */ export function findIndex(v: Iterable | any, callback: Function, context?: any): number; /** * This function returns a first element found from an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {Object} * @example * deepFind([{ x: { xx: { y: 3, z: 'A' } } }], v => typeof v === 'number') // { c: { y: 3, z: 'A' }, k: 'y', v: 3, origin: [{ ... }] } */ export function deepFind(v: Iterable | any, callback: Function, context?: any): any; /** * This function returns new array object which included all sub-array elements * @param {Iterable|Object} v An iterable object or a plain object * @param {number} [depth] Depth level specifying how deep a nested array structure should be flattened * @returns {Array} * @example * flat(['1', [2, 3, 4], [5, 6, 2, [8, 9]]], 2) // ['1', 2, 3, 4, 5, 6, 2, 8, 9] */ export function flat(v: Iterable | any, depth?: number): any[]; /** * This function returns new array object formed by applying a given callback function to each element of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {*} [context] Value which will be use as context(this) when executed callback function * @returns {Array} * @example * flatMap(['1', [2, 3, 4], [5, 6, 7, [8, 9]]], v => v.slice(0)) // ['1', 2, 3, 4, 5, 6, 7, [8, 9]] */ export function flatMap(v: Iterable | any, callback: Function, context?: any): any[]; /** * This function returns whether in an array includes certain value and is not * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Target Value which will be search * @param {number} [start] Start index which to searching * @returns {boolean} * @example * includes([1, 2, 3], v => v === 2) // true */ export function includes(v: Iterable | any, callback: Function, start?: number): boolean; /** * This function returns new array object sorted to ascending * @param {Iterable|Object} v An iterable object or a plain object * @returns {Array} * @example * asc({ x: 'd', y: null, z: 0xff }) // [null, 'd', 255] */ export function asc(v: Iterable | any): any[]; /** * This function returns new array object sorted to descending * @param {Iterable|Object} v An iterable object or a plain object * @returns {Array} * @example * desc(['d', true, undefined, 0xff, 'ee', [], 2e4, () => {}, 't', 0]) // [20000, 255, 'ee', 't', 'd', true, Array(0), f (), 0, undefined] */ export function desc(v: Iterable | any): any[]; /** * This function returns new array object sorted ascending by object key * @param {Iterable|Object} v An iterable object or a plain object * @param {string} key * @returns {Array} * @example * ascBy([{ x: 1, y: 11 }, { x: 2, y: 22 }, { x: 3, y: 33 }], 'y') // [{ ...y: 11 }, { ...y: 22 }, { ...y: 33 }] */ export function ascBy(v: Iterable | any, key: string): any[]; /** * This function returns new array object sorted descending by object key * @param {Iterable|Object} v An iterable object or a plain object * @param {string} key * @returns {Array} * @example * descBy([{ x: 1, y: 11 }, { x: 2, y: 22 }, { x: 3, y: 33 }], 'y') // [{ ...y: 33 }, { ...y: 22 }, { ...y: 11 }] */ export function descBy(v: Iterable | any, key: string): any[]; /** * This function inserts a value from first index of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {*} values Values which will be inserted * @returns {Array} * @example * unshift([1, 2, 3], 11, 22, 33) // [ 11, 22, 33, 1, 2, 3 ] */ export function unshift(v: Iterable | any, ...values: any): any[]; /** * This function inserts a value from last index of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {*} values Values which will be inserted * @returns {Array} * @example * push([1, 2, 3], 11, 22, 33) // [ 1, 2, 3, 11, 22, 33 ] */ export function push(v: Iterable | any, ...values: any): any[]; /** * This function inserts a value from a target index of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {number} targetIndex Target index * @param {*} values Values which will be inserted * @returns {Array} * @example * insert([1, 2, 3, 4], 1, 22) // [1, 22, 2, 3, 4] */ export function insert(v: Iterable | any, targetIndex: number, ...values: any): any[]; /** * This function replaces from target index value of an iterable object or a plain object to new values * @param {Iterable|Object} v An iterable object or a plain object * @param {number} targetIndex Target index * @param {*} values Values which will be replaced * @returns {Array} * @example * replace([1, 2, 3, 4], 2, 33, 'ADD') // [1, 2, 33, 'ADD', 4] */ export function replace(v: Iterable | any, targetIndex: number, ...values: any): any[]; /** * This function removes a value at a target index of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {number} [fromIndex=0] Start index which will be search * @returns {Array} * @example * remove(['1', 2, 3, 4], v => typeof v === 'number'); // ['1'] */ export function remove(v: Iterable | any, callback: Function, fromIndex?: number): any[]; /** * This function returns new array object shuffled as the random * @param {Iterable|Object} v An iterable object or a plain object * @returns {Array} * @example * shuffle([1, 2, 3, 4]) // [3, 1, 2, 4] */ export function shuffle(v: Iterable | any): any[]; /** * This function return new object accumulated every value of an iterable object or a plain object * @param {Iterable|Object} v An iterable object or a Plain object * @param {function} callback Function which will be call on every element of an iterable object or a plain object * @param {Object} initV init object * @returns {*} * @example * reduce([{ x: 1 }, { y: 2 }, { z: 3 }], (acc, v, k) => { acc[k] = v; return acc; }, {}) // { 0: { x: 1 }, 1: { y: 2 }, 2: { z: 3 } } */ export function reduce(v: Iterable | any, callback: Function, initV: any): any; /** * Iterable object like string, Array, Map, Set, Generator iterable... */ export type Iterable = any;