后台返回字符串类型function的处理 (递归算法)

 1 $(function(){
 2     
 3     $.ajax({
 4         type: "post",
 5         url: "${ctx}/modules/fos/reference/echart",
 6         //dataType:'json',
 7         success: function(data) {
 8             var option=$.parseJSON(data);
 9             formatter(option);
10             var myChart = echarts.init(document.getElementById('main')); 
11             myChart.setOption(option); 
12         }
13     });
14     
15     //将option中的function字符串类型转为函数
16     function formatter(option){
17         if((typeof option)=="object"){
18             for(var o in option){
19                 var opt=option[o];
20                 if((typeof opt)=="string"){
21                     if(opt.indexOf("function")!=-1){
22                         //"string"转为"function"  eval
23                         var fmt=eval("("+opt+")");
24                         option[o]=fmt;
25                     }
26                 }
27                 
28                 formatter(opt);
29             }
30         }
31     }
32 });

 递归算法的实质是把问题分解成同类问题的规模缩小的子问题,然后递归调用方法来表示问题的解,把一个大的复杂的问题层层转换为一个小的和原问题相似的问题.

http://blog.csdn.net/agileclipse/article/details/8551228

原文地址:https://www.cnblogs.com/hym-pcitc/p/6187744.html