利用递归函数遍历数据

    var data = [{
                    id: 1,
                    name: '家电',
                    goods: [{
                        id: 11,
                        name: '冰箱',
                        goods: [{
                            id: 112,
                            name: '海尔',
                        }, {
                            id: 113,
                            name: '美的',
                        }]
                    }, {
                        id: 12,
                        name: '洗衣机',
                    }, {
                        id: 13,
                        name: '电视机',
                    }],
                },

                {
                    id: 2,
                    name: '服饰',
                    goods: [{
                        id: 21,
                        name: '冰箱',
                    }, {
                        id: 22,
                        name: '洗衣机',
                    }, {
                        id: 23,
                        name: '电视机',
                    }]
                },
            ]
            // 需求:输入ID号,就可以返回对应的数据对象
            // 思路:1.利用forEach去遍历里面的每一个对象
            var o = {}
            function getID(json, id) {
                json.forEach(function(item) {
                    if (id == item.id) {
                        o = item
                        // 2.想要得到里层的数据11,12 可以;利用递归函数
                        // 判断里面有goods数组,并且数组长度不为0
                    } else if (item.goods && item.goods.length > 0) {
                        o = getID(item.goods, id)
                    }
                    // console.log('没有对应的数据')
                })
                return o
            }
            console.log(getID(data, 21))
            console.log(getID(data, 112))

 

posted @ 2023-01-29 13:17  小闫的姑娘  阅读(24)  评论(0编辑  收藏  举报