当前位置: 首页 > news >正文

重构多重children数据 减少数据

为了将给定的数据结构从使用 keytitle 转换为使用 valuelabel,并且确保子节点(如果有的话)也遵循相同的结构,你可以使用JavaScript的map方法来遍历数组并重构每个对象。这里是如何做的:

const originalData = [{key: "1181175685528424448",title: "智享无界科技有限公司",value: "1181175685528424448",children: [{children: null,title: "上海技术部",value: "1181175865409540096",key: "1181175865409540096"},{children: null,title: "上海技术部1",value: "11811758654095400961",key: "11811758654095400961"}]}
];function transformData(data) {return data.map(item => ({value: item.value,label: item.title, // 假设你希望将"title"改为"有来智享无界科技有限公司",则直接替换此值children: item.children ? transformData(item.children) : null}));
}const transformedData = transformData(originalData);// 如果需要将"智享无界科技有限公司"改为"有来智享无界科技有限公司",你可以在这里进行额外的处理
// 但在这个例子中,我们直接保留原始的title值console.log(transformedData);

然而,如果你确实需要将特定的title值(如"智享无界科技有限公司")替换为"有来智享无界科技有限公司",你可以在transformData函数中添加一个条件判断:

function transformData(data) {return data.map(item => ({value: item.value,label: item.title === "智享无界科技有限公司" ? "有来智享无界科技有限公司" : item.title,children: item.children ? transformData(item.children) : null}));
}

这样,输出就会按照你的要求,将特定的title值替换掉。不过,请注意,这只会替换顶级元素的title,如果你的数据结构中还有嵌套的、且title值也为"智享无界科技有限公司"的元素,它们也会被替换。如果你只想替换顶级元素的title,你可能需要添加额外的逻辑来区分处理。
在JavaScript中,对象的属性名(如key)在大多数情况下是大小写敏感的。然而,如果你想要将对象中的属性名从key改为Key(注意大小写变化),你需要遍历数组和对象,并创建新的对象来反映这一更改。由于直接修改现有对象的属性名是不可能的(除非使用Object.defineProperty来重新定义属性,但这在简单重构中通常不是必要的),以下是一个简单的函数来实现这一点:

const originalData = [{key: "1181175685528424448",title: "智享无界科技有限公司",value: "1181175685528424448",children: [{children: null,title: "上海技术部",value: "1181175865409540096",key: "1181175865409540096"},{children: null,title: "上海技术部1",value: "11811758654095400961",key: "11811758654095400961"}]}
];function transformKeysToUpperCase(data) {return data.map(item => {const newItem = { ...item }; // 浅拷贝原始对象// 更改key属性名为Keyif (newItem.hasOwnProperty('key')) {newItem.Key = newItem.key;delete newItem.key; // 删除原始key属性}// 递归处理childrenif (newItem.children) {newItem.children = transformKeysToUpperCase(newItem.children);}return newItem;});
}const transformedData = transformKeysToUpperCase(originalData);console.log(transformedData);

在这个例子中,transformKeysToUpperCase函数接受一个数组作为输入,并返回一个新的数组,其中每个对象的key属性都被重命名为Key(同时保留了原始对象的其他属性)。如果对象有children属性,则递归地对其执行相同的操作。

请注意,这个函数使用了展开语法(...item)来创建一个新对象,它包含原始对象的所有属性,但随后通过条件检查来添加或删除特定的属性。这种方法保留了除keyKey转换之外的所有原始数据。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 服务启动方法LINUX
  • JS数据类型——【set】精讲
  • 前沿重器[55] | prompt综述的解释和个人思考
  • FreeSWITCH 1.10.10 简单图形化界面28 - 麒麟V10 SP3服务器系统X86和ARM版本安装FreeSWITCH
  • 从行或列的角度思考矩阵-向量乘法(matrix-vector multiplication)
  • I2C总线中的时钟延长和死锁
  • 华为EVPN网关配置
  • OpenCV几何图像变换(8)调整图像大小的函数resize()的使用
  • 学懂C++(四十三):深入剖析现代C++设计模式:从常用经典到前沿的全面解析
  • 有限差分学习笔记
  • Cortex-A7的GIC(通用中断控制器):中断处理状态机
  • 知识图谱用于推荐系统问题
  • odoo SyntaxWarning: invalid escape sequence ‘\w‘
  • Java nio pipe 相似的 api
  • Linux系统中使用socket编程进行网络通信
  • create-react-app做的留言板
  • Druid 在有赞的实践
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Fastjson的基本使用方法大全
  • gulp 教程
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JAVA并发编程--1.基础概念
  • Linux各目录及每个目录的详细介绍
  • mysql innodb 索引使用指南
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • passportjs 源码分析
  • Vue 重置组件到初始状态
  • web标准化(下)
  • 阿里云前端周刊 - 第 26 期
  • 分类模型——Logistics Regression
  • 欢迎参加第二届中国游戏开发者大会
  • 使用 @font-face
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • #1014 : Trie树
  • #DBA杂记1
  • #ifdef 的技巧用法
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (10)ATF MMU转换表
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (二)原生js案例之数码时钟计时
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (学习总结16)C++模版2
  • (原創) 未来三学期想要修的课 (日記)
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)winform之ListView
  • (转)大型网站的系统架构
  • (转载)Linux网络编程入门
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually