注册 登录
编程论坛 JavaScript论坛

求高手用递归写出来.实在不懂。

yebanbaobei 发布于 2013-06-13 20:20, 670 次点击
var arr = [{
            xxx: [432, 44, 43, 43, 43, 55, 2, 3, 5, 6, 11, 44, 55, 88, 'www', 12],
            y: 455,
            x: 33,
            y: ['aaa', new Date(), 33, 44, 5667],
            d: function () { }
        }, 123, '455', 'avd', 5436, {
            a: 543534,
            b: 5344,
            kkk: { a: 22, b: 55666, hhhh: 65 },
            ggg: 'eref',
            yyy: [43, 434, 322, '322', function () { }, 'fdfs', 444, new Date()]
        }, [
        434, 4343, 434, 87686, 434, 32, 656, '434', '3fefdff', 998, 1, 2, 666
                ]];
把数组里面的所有数字类型相加。

[ 本帖最后由 yebanbaobei 于 2013-6-13 20:35 编辑 ]
1 回复
#2
诸葛修勤2013-06-14 13:03
程序代码:
             function sum(v){
                if (!v){
                    return 0;
                }
                var total = 0;
           
                if (Array.isArray(v)){//为数组
                    for (var i=0; i<v.length; ++i){
                        total += sum(v[i]);
                    }
                }
                else if (typeof v === "function"){//为函数
                    var msg = "function";
                }
                else if (typeof v === "object"){//为对象
                    for(var pron in v){
                        total += sum(v[pron]);
                    }
                }else if (typeof v === "string"){//为字符串
                    var msg = "string";
                }else{
                    if (!isNaN(v)){
                        total += v;
                    }
                }
           
                return total;
             }
1