递归算法

it2024-07-21  43

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

这个是接口的请求体的数据,但是我红框标出的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);

最新回复(0)