后台返回的一个二维数组,我想转换为多维数组,用 javascript

大神们好,我现在有一个这样的需求,后台返回一个二维的数组,然后我根据参数的不同转化为多维数组;


后台返回的数组:(这个是我手写的假数据)

https://img2.mukewang.com/5c4825a600019f1007490223.jpg

现在要根据这个数组来做一些改变,下面是我希望得到的数据

https://img1.mukewang.com/5c4825b1000146a208150268.jpg

说明一下逻辑:


根据数组第一个值中 'id' 来查找剩下的数组中是否有 'id' == 'relation' ,如果有,就要把当前检查的这个放在与它相等的值的 ['child'] 属性中;

表达能力不好,我还是举例说明把。

当到这个数据后,获取第一个的 ['id'] 值 arr0,也就是64,然后再循环整个数组,看看有没有哪个的 ['relation'] 属性值与当前的 ['id'] 值相等,现在找到了 第二个和第七个是满足条件的,此时,就把第二个和第七个放到第一个数组的 ['child'] 属性中,然后,再查找数组中第一个的 ['peiou'] 值,如果 ['peiou'] 不是0,那就看看有没有哪个属性的 ['id'] 属性值与当前的 ['peiou'] 相等, 如果有,就放到 ['peiouArr'] 中。


嗯,就是这样,求大神给个解决办法!

我现在是这样写的:


function arrCombination(arr) {

    for (var i = 0; i < arr.length; i++)

        for (var j = 0; j < arr.length; j++) {

            if (arr[i]["id"] === arr[j]["relation"])

                arr[i]["child"].push(arr[j]);

            if (arr[i]["peiou"] !== 0 && arr[i]["peiou"] === arr[j]["id"])

                arr[i]["peiouArr"].push(arr[j]);

        }

    return arr[0];

}

但老是有问题,有别的解决办法吗?


qq_遁去的一_1
浏览 1125回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript