Как сравнить строки из файла JSON в угловых? - PullRequest
0 голосов
/ 29 августа 2018

У меня есть эти элементы в файле JSON, которые мне нужно сравнивать везде, где у меня есть значения Curr или Prev, и сравнивать, если они равны. этот алгоритм с угловым 5, но я не могу это сделать, я сделал функцию загрузки с httpClient Пример:

[{
    "id": 1,
    "comparisonDate": "2017-06-22",
    "milestone": "CURR_PREV",
    "udDomain": "BASIS",
    "udIdentifier": "332A251000.01",
    "rpt": "D70",
    "approvedCurr": true,
    "approvedPrev": null,
    "commercialReferenceCurr": "BASIS - 01.01.2007",
    "commercialReferencePrev": null,
    "customizationImpactCurr": null,
    "customizationImpactPrev": null,
    "deliveryTypeCurr": null,
    "deliveryTypePrev": null,
    "aircraftId": 184,
    "aircraftSapId": "580652",
    "aircraftName": "BUL 011",
    "aircraftSerialNumber": "02713",
    "quantityCurr": "1",
    "quantityPrev": null,
    "statusCurr": "O",
    "statusPrev": null,
    "typeModification": "CREATION",
    "validityCurr": "V",
    "validityPrev": null
}, {
    "id": 2,
    "comparisonDate": "2017-06-22",
    "milestone": "CURR_PREV",
    "udDomain": "BASIS",
    "udIdentifier": "332A270028.01",
    "rpt": "E15",
    "approvedCurr": true,
    "approvedPrev": null,
    "commercialReferenceCurr": "BASIS - 01.01.2007",
    "commercialReferencePrev": null,
    "customizationImpactCurr": null,
    "customizationImpactPrev": null,
    "deliveryTypeCurr": null,
    "deliveryTypePrev": null,
    "aircraftId": 184,
    "aircraftSapId": "580652",
    "aircraftName": "BUL 011",
    "aircraftSerialNumber": "02713",
    "quantityCurr": "1",
    "quantityPrev": null,
    "statusCurr": "O",
    "statusPrev": null,
    "typeModification": "CREATION",
    "validityCurr": "V",
    "validityPrev": null
}]

это должно быть с использованием lodash.

1 Ответ

0 голосов
/ 04 сентября 2018

Я предполагаю, что вы хотите что-то вроде этого

  • для каждого объекта в вашем массиве
  • фильтр ключей, заканчивающихся на "Curr"
  • за каждое приобретенное свойство Prev
  • сравнить его со свойством curr

    let obj = [{
    "id": 1,
    "comparisonDate": "2017-06-22",
    "milestone": "CURR_PREV",
    "udDomain": "BASIS",
    "udIdentifier": "332A251000.01",
    "rpt": "D70",
    "approvedCurr": true,
    "approvedPrev": null,
    "commercialReferenceCurr": "BASIS - 01.01.2007",
    "commercialReferencePrev": null,
    "customizationImpactCurr": null,
    "customizationImpactPrev": null,
    "deliveryTypeCurr": null,
    "deliveryTypePrev": null,
    "aircraftId": 184,
    "aircraftSapId": "580652",
    "aircraftName": "BUL 011",
    "aircraftSerialNumber": "02713",
    "quantityCurr": "1",
    "quantityPrev": null,
    "statusCurr": "O",
    "statusPrev": null,
    "typeModification": "CREATION",
    "validityCurr": "V",
    "validityPrev": null
    }, {
    "id": 2,
    "comparisonDate": "2017-06-22",
    "milestone": "CURR_PREV",
    "udDomain": "BASIS",
    "udIdentifier": "332A270028.01",
    "rpt": "E15",
    "approvedCurr": true,
    "approvedPrev": null,
    "commercialReferenceCurr": "BASIS - 01.01.2007",
    "commercialReferencePrev": null,
    "customizationImpactCurr": null,
    "customizationImpactPrev": null,
    "deliveryTypeCurr": null,
    "deliveryTypePrev": null,
    "aircraftId": 184,
    "aircraftSapId": "580652",
    "aircraftName": "BUL 011",
    "aircraftSerialNumber": "02713",
    "quantityCurr": "1",
    "quantityPrev": null,
    "statusCurr": "O",
    "statusPrev": null,
    "typeModification": "CREATION",
    "validityCurr": "V",
    "validityPrev": null
     }];
    
    
    obj.forEach(x=>{
      Object.keys(x)
       .filter(y=>y.endsWith("Curr"))
       .forEach(y=>{
         let prevProp = y.replace("Curr", "Prev")
         console.log(y, x[y]);
         console.log(prevProp ,x[prevProp ]);
         if(x[y]===x[prevProp ]){
           //equal
         }else{
           //not equal
         }
     })
    
    })
    

Вы можете использовать _.forEach, _.Keys, _.filter от lodash, но я думаю, что в этом нет особого смысла.

...