@pkt/utils
Version:
53 lines • 4.55 kB
JavaScript
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=