循环中的JavaScript属性更新,使用上一个值重置所有以前的值

[{ "_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" }], }] } 

}]

我的执行逻辑是:

一个。 循环可用的服务

湾 find每个服务子types

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

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

即 这将继续所有可用的服务子types

问题陈述

一个。 在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 >> 0 b >> 0 c >> 0第一个元素的变化>> 0

a >> 0 b >> 0 c >> 1第一个元素的变化>> 0

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

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

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

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

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

**我真的被困在这里,不能find任何线索或解决scheme来解决它。 请求任何帮助。 感谢所有提前**