js计算之递归

看以下js代码:

var w = [{
        label: ‘你好‘,
        node: [
            {
                label: ‘你好啊‘,
                node: [{
                    label: "还好",
                    node: []
                }, {
                    label: ‘你好吧‘,
                    node: []
                },{
                    label: "还好",
                    node: []
                }, {
                    label: ‘你好吧‘,
                    node: [
                        {
                            label: "还好",
                            node: []
                        }, {
                            label: ‘你好吧‘,
                            node: []
                        }
                    ]
                }]
            }
        ]
    },
        {
            label: ‘我来了‘,
            node: []
        }
    ]

  怎么找出上面所有的label值,上面就是一个树型结构;

用递归遍历里面的所有对象如下:

    var b = [];
    function digui(c) {
        for (var i = 0; i < c.length; i++) {
            if (c[i].node.length === 0) {
                b.push(c[i].label)
            } else {
                b.push(c[i].label)
                digui(c[i].node)
            }
        }
    }
    digui(w)
    console.log(b);
时间: 2024-08-09 10:44:52

js计算之递归的相关文章

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

JS 计算2个日期相差的天数

<span style="font-size:18px;">function getDays(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var oDate1; var oDate2; var iDays; oDate1= strDateStart.split(strSeparator); oDate2= strDateEnd.split(strSeparator); <spa

JS计算网页停留时间代码

JS计算网页停留时间的代码. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&

html5 表单 填表 select 下拉 textarea多行文本 output Js计算结果

<select>     下拉 <select>下有很多属性 name        其实有name就有value了,因为button提交的都是? name=value的格式, 如果不写value提交的就会是option的字符串 实际上和input 的 list 差不多, 都要用option , value可以不加, 但赋值一般用于数据库的存储和调用. 数据库对于数字索引更高效 size        不用下拉了, 好像淘宝卖家选商品品类列表一样- multiple    多选为t

JS计算两个日期之间的天数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

js计算字数的方法(与word计算出来一样)

[背景] 用户经常要求某个字段要求限制填写多少字,可是js通过value.length取出来的往往跟实际字数相差很多.经常有用户抱怨,明明没写那么多字,可是系统却提示超出字数限制.于是,我研究了word计算字数的规则,写了一段这样程序. [参考代码] //用word方式计算正文字数 function fnGetCpmisWords(str){ sLen = 0; try{ //先将回车换行符做特殊处理 str = str.replace(/(\r\n+|\s+| +)/g,"龘");

js 计算两个日期间的天数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

js 计算两个时间的差

比如得到两个时间的字符串 2013-01-21 11:10:49   2013-01-21 11:14:43,要用后面的时间减去前面的时间 直接上代码 var begen = new Date(value[0]["createtime"]) var end = new Date(value[i]["createtime"]) var cha = end.getTime()-begen.getTime(); console.log(cha); console.log(

Vue.js 计算属性

Vue.js 计算属性 使用计算属性的实例: <!DOCTYPE html> <html> <head> <meta cahrset="utf-8"> <title>computed</title> <script src="vue.min.js"></script> </head> <body> <div id="app"