循环中的JavaScript属性更新,使用上一个值

时间:2017-09-03 15:50:54

标签: javascript json node.js

[{
"_id": "5987496838099514948b4a1c",
"availableServices": [{
    "_id": "598750d238099514948b4a33",
    "serviceType": {
        "_id": "59874b3438099514948b4a20",
        "uniqueIdentifier": "AC",
    },
    "serviceSubTypes": [{
        "_id": "598750d238099514948b4a34",
        "serviceSubType": {
            "_id": "59874b5638099514948b4a21",
            "displaySubTypeName": "DRY SERVICE",
            "minimumServiceCost": "399",
            "zonalMinimumServiceCost": [{
                "_id": "59874b5638099514948b4a22",
                "minimumServiceCost": "399",
                "zone": "5987496838099514948b4a1c",
                "providerPrice": [{
                    "_id": "59a3007ee8c1cb276c042e64",
                    "minimumServiceCost": "400",
                    "provider": "598752c6265bbd162009ef35"
                }]
            }, {
                "_id": "599da2247910831a3c9b90aa",
                "minimumServiceCost": "399",
                "zone": "599da2247910831a3c9b90a8",
                "providerPrice": []
            }],
        },
        "providerAtServiceSubTypeLevel": [{
            "companyName": "TEST2",
            "calculatedMinServicePrice" : "0" 
        }, {
            "companyName": "TEST1",
            "calculatedMinServicePrice": "0"

        }]
    }, {
        "_id": "598750d238099514948b4a35",
        "serviceSubType": {
            "_id": "59874b6738099514948b4a23",
            "displaySubTypeName": "WET SERVICE",
            "minimumServiceCost": "399",
            "zonalMinimumServiceCost": [{
                "_id": "59874b6738099514948b4a24",
                "minimumServiceCost": "399",
                "zone": "5987496838099514948b4a1c",
                "providerPrice": [{
                    "_id": "59a3076ee8c1cb276c042e66",
                    "minimumServiceCost": "412",
                    "provider": "598752c6265bbd162009ef35"
                }]
            }, {
                "_id": "599da2247910831a3c9b90ab",
                "minimumServiceCost": "399",
                "zone": "599da2247910831a3c9b90a8",
                "providerPrice": []
            }]

        },
        "providerAtServiceSubTypeLevel": [{
            "_id": "598759c3232d9920884e103a",
            "companyName": "TEST2",
            "calculatedMinServicePrice" : "0"  
        }, {
            "_id": "598752c6265bbd162009ef35",
            "companyName": "TEST1",
            "calculatedMinServicePrice" : "0"   

             }],

        }]
    } 

}]

我的执行逻辑是:

一个。循环通过availableServices

湾查找每个服务子类型

℃。计算最高服务价格取决于minimumServiceCost,zonalMinimumServiceCost.minimumServiceCost和providerPrice.minimumServiceCost

d。 update providerAtServiceSubTypeLevel.calculatedMinServicePrice取决于上面计算的价格(如果providerPrice存在,那么将在更新期间考虑)

即这将继续用于所有可用的服务子类型

问题陈述

一个。在providerAtServiceSubTypeLevel.calculatedMinServicePrice的循环和更新期间,所有先前的元素都在更新 最后一个值

只是为了模仿这里的问题是代码

for(var a=0;    a < zonedetails[0].availableServices.length; a++){

for(var b=0;    b < zonedetails[0].availableServices[a].serviceSubTypes.length; b++){

        for(var c=0;    c < zonedetails[0].availableServices[a].serviceSubTypes[b].providerAtServiceSubTypeLevel.length; c++){

                        console.log(" a  >> " + a + " b  >> " + b + " c  >> " + c);
                        zonedetails[0].availableServices[a].serviceSubTypes[b].providerAtServiceSubTypeLevel[c].calculatedMinServicePrice = a+b+c;
                        console.log("Change in first element >> " + zonedetails[0].availableServices[0].serviceSubTypes[0].providerAtServiceSubTypeLevel[0].calculatedMinServicePrice);

        }
}

}

这是输出

a&gt;&gt; 0 b>&gt; 0 c>&gt; 0 第一个元素的更改&gt;&gt; 0

a&gt;&gt; 0 b>&gt; 0 c>&gt; 1 第一个元素的更改&gt;&gt; 0

a&gt;&gt; 0 b>&gt; 1 c>&gt; 0 第一个元素的更改&gt;&gt; 1

a&gt;&gt; 0 b>&gt; 1 c>&gt; 1 第一个元素的更改&gt;&gt; 1

a&gt;&gt; 0 b>&gt; 2 c>&gt; 0 第一个元素的更改&gt;&gt; 2

a&gt;&gt; 0 b>&gt; 2 c>&gt; 1 第一个元素的更改&gt;&gt; 2

a&gt;&gt; 1b>&gt; 0 c>&gt; 0 第一个元素的更改&gt;&gt; 2

**我真的被困在这里,无法找到解决问题的任何线索或解决方案。请求任何帮助。感谢所有提前**

0 个答案:

没有答案