@ashirbad/js-core
Version: 
A set of js core utility functions
39 lines (38 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getArrFromObj = void 0;
/**
 * Converts an object to an array with customizable ID field.
 *
 * @template T - Type of the object values
 * @param {Record<string, T>} object - The source object to convert
 * @param {string} [key='id'] - The key name to use for the object's keys in the resulting array
 * @param {Array<T & { [K: string]: string }>} [arr=[]] - Optional accumulator array
 * @returns {Array<T & { [K: string]: string }>} An array containing the object's values with their keys
 *
 * @example
 * // Basic usage with default key
 * const obj = {
 *   '1': { name: 'John', age: 30 },
 *   '2': { name: 'Jane', age: 25 }
 * };
 * const result = getArrFromObj(obj);
 * // Result: [
 * //   { id: '1', name: 'John', age: 30 },
 * //   { id: '2', name: 'Jane', age: 25 }
 * // ]
 *
 * @example
 * // Using custom key name
 * const result = getArrFromObj(obj, 'uid');
 * // Result: [
 * //   { uid: '1', name: 'John', age: 30 },
 * //   { uid: '2', name: 'Jane', age: 25 }
 * // ]
 */
const getArrFromObj = (object, key = 'id', arr = []) => {
    for (const id in object)
        arr.push(Object.assign({ [key]: id }, object[id]));
    return arr;
};
exports.getArrFromObj = getArrFromObj;