递归遍历数据

该代码段展示了一个JavaScript函数getID,它利用Array.prototype.some方法递归地在数据结构中查找指定ID的对象。数据结构包含家电和服饰两大类别,每个类别下有多个商品,商品下还有子商品。函数成功找到匹配ID的项后立即终止循环,返回找到的对象。
摘要由CSDN通过智能技术生成
 var data = [{
            id: 1,
            name: '家电',
            goods: [{
                id: 11,
                gname: '冰箱',
                goods: [{
                    id: 111,
                    gname: '海尔'
                }, {
                    id: 112,
                    gname: '美的'
                },
                ]
            }, {
                id: 12,
                gname: '洗衣机'
            }]
        }, {
            id: 2,
            name: '服饰'
        }];
        function getID(data, id) {
            var o={};
            data.some(function (item) {
                if (item.id == id) {
                    o=item;
                    return true;
                } else if (item.goods && item.goods.length > 0) {
                    o = getID(item.goods, id);
                }
            })
            return o;
        }
        console.log(getID(data,111));

使用some函数,便于退出循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值