//声明
function transTOTree(arr, rule) { arr.forEach(item => { rule.forEach(map => { for (let key in map) { let newValue = map.oldKey ? item[map.oldKey] : ""; if (map.newValue) { newValue = map.newValue(newValue); } item[map.newKey] = newValue; } }) if (item.children && item.children.length > 0) { transTOTree(item.children, rule); } }); return arr; }//参数
var params = [{ oldKey: "name", newKey: "title", newValue: v => { return v; } }, { oldKey: "is", newKey: "checked", newValue: v => { return v ? 1 : 0; } } ]//模拟数据
var oldData = [{ name: 1, is: 1, children: [{ name: 11, is: 1, children: [{ name: 1111, is: 0, }] }, { name: 12, is: 0, }] }, { name: 2, is: 1, }]//调用
console.log(transTOTree(oldData, params))//输出
[{ title: 1, checked: true, children: [{ title: 11, checked: true, children: [{ title: 1111, checked: false, }] }, { title: 12, checked: false, }] }, { title: 2, checked: true, }]
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/102821.html
摘要:类似于数组,但是中不存在重复元素。可以接受一个数组或者其他具有接口的数据结构作为参数从上面的代码可以看出有去重的功能。去重还有另一个方法将数据结构的数据转换成数组。清除实例的指定成员。返回一个布尔值,表示某个值是否在实例之中。 Set Set类似于数组,但是Set中不存在重复元素。Set可以接受一个数组(或者其他具有itarable接口的数据结构)作为参数 const set = ne...
摘要:对象对象作为一种复杂的数据类型,表示的是一组有序的键值对。解析与序列化对象流行的最主要的原因是因为数据结构可以解析为的对象。为了改变序列化对象的结果,函数返回值就是相应键的值。否则按照默认顺序执行序列化。 语法 JSON可以表示一下三种类型的值: 简单值:使用与js相同的语法可以在json中表示字符串、数值、布尔值和null。但是json不支持js的undefined。 对象:对象作...
摘要:相关阅读完爆,全方位对比解析一基础功能完爆,全方位对比解析二权限控制自发布以来,不断有网友拿来和的对比,甚至有不少人声称完爆。近年稳步上升,已跃居第名。 相关阅读: 完爆Facebook/GraphQL,APIJSON全方位对比解析(一)-基础功能 完爆Facebook/GraphQL,APIJSON全方位对比解析(二)-权限控制 自APIJSON发布以来,不断有网友拿来和Facebo...
摘要:后面可以使用任意字符和下划线例如非法的变量在函数中创建的,它的生命周期与函数一样,在主脚本中生成的变量不在函数中不是全局变量,不能在函数中使用它,但是可以用来访问使用变量的名字作为字符串的关键字给程序员一个鼓励呗微信支付宝 1.类的写法 class MyClass { private $id = 19; public function __construct() { ...
阅读 2928·2023-04-25 17:46
阅读 3544·2021-11-25 09:43
阅读 1030·2021-11-18 10:02
阅读 3013·2021-10-14 09:43
阅读 2718·2021-10-13 09:40
阅读 1497·2021-09-28 09:35
阅读 2118·2019-08-30 15:52
阅读 3110·2019-08-30 14:06