Angular 从端点提取相同参数名称的某些值

Angular 从端点提取相同参数名称的某些值,angular,Angular,我有一个端点,它返回一组数据。我正试图从中提取schemeNo。数据可以有一个或多个schemeNo 这是数据。schemeNo位于retirementData集合中 { "id": "2193e640-d97c-4952-a8a4-9aa250db364a", "parentCorporate": null, "statusId": 2, "primaryColour": &qu

我有一个端点,它返回一组数据。我正试图从中提取
schemeNo
。数据可以有一个或多个
schemeNo

这是数据。
schemeNo
位于
retirementData
集合中

{
  "id": "2193e640-d97c-4952-a8a4-9aa250db364a",
  "parentCorporate": null,
  "statusId": 2,
  "primaryColour": "#001aff",
  "riskData": "{\"packages\":[{\"id\":0,\"isMaxInCurrency\":false,\"max\":10.0,\"name\":\"Dual Risk\",\"riskPackageCoverId\":0,\"riskPackageCoverName\":null,\"packageCovers\":null,\"isPaidFromRetirementContributions\":false,\"isEnabled\":false}]}",
  "retirementData": "{\"benefits\":[{\"availableBenefitOptions\":{\"anniversaryDate\":\"2020-11-17T22:00:00Z\",\"hasPensionBackedHomeLoan\":false,\"retirementAge\":65,\"schemeName\":\"Dual Alexander Forbes Retirement Fund Pension Base Fund\",\"schemeNo\":\"1590\"},\"contribution\":{\"anniversaryDate\":null,\"employerContributions\":null,\"hasEmployerContribution\":false,\"hasMemberContribution\":true,\"hasVoluntaryContribution\":false,\"memberContributions\":[5.0],\"voluntaryContributions\":null},\"investmentStrategy\":{\"defaultOptionId\":0.0,\"hasClarity\":null,\"hasSinglePortfolio\":true,\"isComprehensive\":null,\"isLifestage\":null,\"lifestage\":null,\"portfolioOptionId\":null,\"defaultLabelName\":\"Single portfolio – Real Return Focus\"},\"qualifyingMembers\":{\"hasContract\":false,\"hasDisabilityClaims\":false,\"isFullTime\":true,\"isOverRetirementAge\":false,\"isPartTime\":false,\"isPermanent\":false,\"isUnderRetirementAge\":false}},{\"availableBenefitOptions\":{\"anniversaryDate\":\"2020-11-24T22:00:00Z\",\"hasPensionBackedHomeLoan\":false,\"retirementAge\":65,\"schemeName\":\"Dual Alexander Forbes Retirement Fund Pension Base Fund\",\"schemeNo\":\"2421\"},\"contribution\":{\"anniversaryDate\":null,\"employerContributions\":null,\"hasEmployerContribution\":false,\"hasMemberContribution\":true,\"hasVoluntaryContribution\":false,\"memberContributions\":[7.0],\"voluntaryContributions\":null},\"investmentStrategy\":{\"defaultOptionId\":0.0,\"hasClarity\":null,\"hasSinglePortfolio\":true,\"isComprehensive\":null,\"isLifestage\":null,\"lifestage\":null,\"portfolioOptionId\":null,\"defaultLabelName\":\"Single portfolio – Real Return Focus\"},\"qualifyingMembers\":{\"hasContract\":false,\"hasDisabilityClaims\":false,\"isFullTime\":true,\"isOverRetirementAge\":false,\"isPartTime\":false,\"isPermanent\":false,\"isUnderRetirementAge\":false}}],\"fundSalaryOptions\":[5.0]}",
  "createdDate": "2020-11-10T06:32:27.54Z",
  "modifiedDate": "2020-11-10T06:32:27.54Z",
  "subGroups": []
} 
我尝试了以下操作,但它只返回第一个
schemeNo

console.log(JSON.parse(resp["retirementData"])["benefits"]["0"].availableBenefitOptions.schemeNo);

如果我删除了
[0]
它,并给出了一个未定义的错误

那么,由于
优点
属性是一个数组,并且它可能包含多个值,那么您应该使用
数组.map
而不是索引访问。因此,您的代码应该如下所示:

console.log(
     JSON.parse(
       resp["retirementData"])["benefits"].map(r=> r.availableBenefitOptions.schemeNo));

您应该在那里使用
map
函数:
[“好处”].map(r=>r.availableBenefitOptions.schemeNo)
谢谢,您可以将答案作为答案,我会做正确的标记