UNPKG

@kitmi/utils

Version:

A JavaScript utility library for both server and browser

29 lines (23 loc) 827 B
import _map from 'lodash/map'; import _get from './get'; /** * Convert a k-v paired object into an array pair-by-pair. * @alias object.objectToArray * @param {*} object * @param {*} keyNaming * @param {*} valueNaming * @returns {array} */ const objectToArray = (object, keyNaming, valueNaming, valuePath) => { // (object, elementBuilder) if (typeof keyNaming === 'function') { if (valueNaming != null || valuePath != null) { throw new Error('Invalid argument!'); } return _map(object, keyNaming /* elementBuilder(v, k) => array element */); } keyNaming ?? (keyNaming = 'name'); valueNaming ?? (valueNaming = 'value'); return _map(object, (v, k) => ({ [keyNaming]: k, [valueNaming]: valuePath ? _get(v, valuePath) : v })); }; export default objectToArray;