UNPKG

@pkt/utils

Version:

53 lines 4.55 kB
import { isObject, isNonEmptyString } from '../validate'; /** * 数组转Json {'':''} * @param arr 数组 * @param key 字段 */ export function arrToJson(arr, key = 'id') { const pos = {}; if (isNonEmptyString(key) === false) { for (const no of arr) { pos[no] = no; } return pos; } for (const no of arr) { pos[no[key]] = no; } return pos; } /** * 数组转Json(json嵌套数组) {'':[]} * @param arr 数组 * @param key 字段 */ export function arrToJsonArr(arr, key = 'id') { const pos = {}; for (const x of arr) { if (!pos[x[key]]) { pos[x[key]] = []; } pos[x[key]].push(x); } return pos; } /** * json转数组 * @param value object数组 */ export function jsonToArr(value) { if (!isObject(value)) { return []; } const temps = []; let temp = {}; for (const key in value) { if (value.hasOwnProperty(key)) { temp = value[key]; temps.push(temp); } } return temps; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvYXJyYXkvYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd6RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFjLEVBQUUsR0FBRyxHQUFHLElBQUk7SUFDbEQsTUFBTSxHQUFHLEdBQUcsRUFBYSxDQUFDO0lBRTFCLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBYyxFQUFFLEdBQUcsR0FBRyxJQUFJO0lBQ3JELE1BQU0sR0FBRyxHQUFHLEVBQWEsQ0FBQztJQUMxQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWM7SUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7SUFDZCxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JqZWN0LCBpc05vbkVtcHR5U3RyaW5nIH0gZnJvbSAnLi4vdmFsaWRhdGUnO1xuaW1wb3J0IHR5cGUgeyBTYWZlQW55IH0gZnJvbSAnQHBrdC91dGlscy90eXBlcyc7XG5cbi8qKlxuICog5pWw57uE6L2sSnNvbiB7Jyc6Jyd9XG4gKiBAcGFyYW0gYXJyIOaVsOe7hFxuICogQHBhcmFtIGtleSDlrZfmrrVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyclRvSnNvbihhcnI6IFNhZmVBbnlbXSwga2V5ID0gJ2lkJyk6IFNhZmVBbnkge1xuICBjb25zdCBwb3MgPSB7fSBhcyBTYWZlQW55O1xuXG4gIGlmIChpc05vbkVtcHR5U3RyaW5nKGtleSkgPT09IGZhbHNlKSB7XG4gICAgZm9yIChjb25zdCBubyBvZiBhcnIpIHtcbiAgICAgIHBvc1tub10gPSBubztcbiAgICB9XG4gICAgcmV0dXJuIHBvcztcbiAgfVxuXG4gIGZvciAoY29uc3Qgbm8gb2YgYXJyKSB7XG4gICAgcG9zW25vW2tleV1dID0gbm87XG4gIH1cbiAgcmV0dXJuIHBvcztcbn1cblxuLyoqXG4gKiAg5pWw57uE6L2sSnNvbihqc29u5bWM5aWX5pWw57uEKSB7Jyc6W119XG4gKiBAcGFyYW0gYXJyIOaVsOe7hFxuICogQHBhcmFtIGtleSDlrZfmrrVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyclRvSnNvbkFycihhcnI6IFNhZmVBbnlbXSwga2V5ID0gJ2lkJyk6IFNhZmVBbnkge1xuICBjb25zdCBwb3MgPSB7fSBhcyBTYWZlQW55O1xuICBmb3IgKGNvbnN0IHggb2YgYXJyKSB7XG4gICAgaWYgKCFwb3NbeFtrZXldXSkge1xuICAgICAgcG9zW3hba2V5XV0gPSBbXTtcbiAgICB9XG4gICAgcG9zW3hba2V5XV0ucHVzaCh4KTtcbiAgfVxuXG4gIHJldHVybiBwb3M7XG59XG5cbi8qKlxuICoganNvbui9rOaVsOe7hFxuICogQHBhcmFtIHZhbHVlIG9iamVjdOaVsOe7hFxuICovXG5leHBvcnQgZnVuY3Rpb24ganNvblRvQXJyKHZhbHVlOiBTYWZlQW55KTogU2FmZUFueVtdIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY29uc3QgdGVtcHMgPSBbXTtcbiAgbGV0IHRlbXAgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdGVtcCA9IHZhbHVlW2tleV07XG4gICAgICB0ZW1wcy5wdXNoKHRlbXApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGVtcHM7XG59XG4iXX0=