如何比较角度来自JSON文件的行?

问题描述 投票:1回答:1

我在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。

json angular5 lodash
1个回答
1
投票

我假设你想要这样的东西

  • 对于数组中的每个对象
  • 以“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 } }) })

你可以使用lodash的_.forEach,_.Keys,_.filter,但我认为这没什么意义。

© www.soinside.com 2019 - 2024. All rights reserved.