js json递归

2025-04-23 18:06:12
推荐回答(1个)
回答1:

根据你的需求,我写了个函数,并且测试通过。详细的代码如下,请自行参考并修改。




    
    
    

    


    
    var a = [
    {
        "store_id": "1",
        "store_name": "窝啦小城",
        "goods_id": "100018",
        "goods_name": "100%桑蚕丝防晒短披肩小外套空调衫薄外搭针织开衫女2015夏薄开衫 白色 M",
        "goods_price": "220.00"
    },
    {
        "store_id": "1",
        "store_name": "窝啦小城",
        "goods_id": "100024",
        "goods_name": "100%桑蚕丝防晒短披肩小外套空调衫薄外搭针织开衫女2015夏薄开衫 黄色 M",
        "goods_price": "235.00"
    },
    {
        "store_id": "1",
        "store_name": "窝啦小城",
        "goods_id": "100026",
        "goods_name": "100%桑蚕丝防晒短披肩小外套空调衫薄外搭针织开衫女2015夏薄开衫 黄色 XL",
        "goods_price": "238.00"
    },
    {
        "store_id": "2",
        "store_name": "菜场",
        "goods_id": "100027",
        "goods_name": "精选新鲜黄秋葵200g 新鲜蔬菜 16:00截单",
        "goods_price": "7.50"
    }
]



//这里是测试输出
console.log(encodeJson(a))



function encodeJson (a) {
    //用来存放新的数组
    var b = [];
    //用来存放store_id,方便查找
    var c = [];
    var i=0,j=0,k=-1;
    for(;i        var id = a[i]['store_id'];
        for(j=0;j            if(c[j]==id){
                k = j;
                break;
            }
        }
        if(k!=-1){
            b[k].list.push(a[i])
        }else{
            b.push(a[i]);
            var len = b.length;
            b[len-1].list = [];
            c.push(id);
        }
        k=-1;
    }
    return b;
}
    


如果答案符合你的要求,请采纳。有问题请追问。