树形/级联组件->数据做键,制作与还原

数据的制作

/** 树形/级联组件->数据做键,制作与还原
 * @param {Array} list 
 * @param {string} params 源 `json` 的 `key`
 * @param {string} key 生成后 `string` 存放的 `key`
 * @param {string} children 下一级的 `key` 值
 * @returns 
 */
export const TreeValueToKey = (list, params = 'params', key = 'key', children = 'children') => {
  return list.map((item) => {
    if(item[params]) item[key] = JSON.stringify(item[params]);
    if(item[children]) item[children] = TreeValueToKey(item[children]);
    return item;
  })
}

数据的还原

/** 还原树/级联组件选中的key
 * @param {String<Object>[]} keys
 * @param {Boolean} false: 不进行合并 true: 合并结果数据为一个json
 */
export const recoverSelectKey = (keys, merge = false) => {
  const reObj = keys.map((str)=>JSON.parse(str));
  if(!merge) return reObj;
  else return reObj.reduce((previous, current)=>({...previous, ...current}),{});
}
posted @   qoon  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示