简单的递归算法

最新总是搞些配置工作,搞的很心烦,有些配置,要是个个都人手去配置的话,要配死人,所以有些时候需要自己写些简单的算法去生成程序!来看下我们的要求,先上张图

在这里插入图片描述
这个是接口的请求体的数据,但是我红框标出的clazz类名全部要改,改成下图中的value值(短名改长名)
在这里插入图片描述
要是我一个个手工去找,手动去配,2万多行代码我得改多久?我真的很无语会有这样的工作,没办法只能自己写个程序!思路是分二种情况,第一种情况如果是对象或者是数组,遍历对象,然后做递归,另外一种情况是字符串,然后去找有没有这个clazz类的长名,没有的话直接不做处理!

function replaceClazz(source, clazzObj) {
     if (typeof source == "object") {
         for (var key in source) {
             if (typeof source[key] == "object") {
                 replaceClazz(source[key], clazzObj);
             } else {
                 if (key === "clazz") {
                     source[key] = findClazz(source[key], clazzObj);
                 };
             };
         };
     };
 };

 //clazz 短名换长名
 function findClazz(value, clazzObj) {
     for (var key in clazzObj) {
         if (key === value) {
             return value = clazzObj[key];
         };
     };
     return value;
 };

 replaceClazz(source, domainClazz);
 console.log(source);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值