如何遍历json数据生成三维数组

success: (data) => {
                    jsonData = data;
                    var pl = []; //产品所有信息合集 pro-list 三维数组
                    //所包含参数如下 proName,proId,,comName,comId,letter
                    function selectType(type) {
                        data.detail.forEach((value1, i, array) => {
                            var cl = {};
                            cl.com = [];
                            value1.companyProducts.forEach((value2, j, array) => {
                                var coms = {};
                                value2.insProducts.forEach((value3, y, array) => {
                                    if (value3.insType == type) {
                                        cl.letter = value1.letter;
                                        coms.comName = value2.companyName;
                                        coms.products = [];
                                        value3.products.forEach((value4, k, array) => {
                                            var pros = {};
                                            pros.proName = value4.productName;
                                            pros.proId = value4.id;
                                            coms.products.push(pros);
                                        })
                                        cl.com.push(coms);
                                    }
                                });
                            });
                            pl.push(cl);
                        });
                        console.log(pl);
                        return pl;
                    }
                    vue.lists = selectType(5); //selectType里参数为保险类型,需由另一个页面传入
                    console.log(vue.lists);
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert(XMLHttpRequest.status);
                    alert(XMLHttpRequest.readyState);
                    alert(textStatus);
                }

大概讲解一下,就是数组的对象需要是数组,该怎么办呢?
就让arr.sub=[],然后创建个对象:obj={}
最后把对象推进arr.sub中即可arr.sub.push(obj)
三维的话就再重复上述操作一次喽。

但是我这次需要实现的功能还有筛选,需要获得某个属性等于5的时候的数组;
所以这时候需要if语句,如果在if语句外面获取数据,则会有空值情况,如果在if里面建对象、赋值,则达不成我想要的三维数组,最后用vue循环的时候,则会重复赋值;
所以我采取的解决办法是:在if外层建对象、数组,if内层再赋值,则不会形成重复或者空值了。

这个问题困扰了我一天,都没有解决的思路。
果然还是要多查阅、多思考,现在有种感觉自己不是在单纯的模仿了,而是在逐步的发散创新思维,自己在摸索创造。 这种感觉真好!!!加油

你可能感兴趣的:(Vue.js,json)