无法在嵌套数组对象中获取对象值

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

我想知道如何使用JavaScript获取嵌套数组对象中的对象值。如果sourcecountry与对象中的国家/地区匹配,则应返回付款服务。

我试过这个:

funtion getValue(source, ob){
      var list  = obj.filter((cn)=>{
      return cn.country_from.filter((c)=>{
       return c.country == source
      })
   })
}
var result = getValue(sourcecountry, obj);


var sourcecountry = "SG";
var obj = [
    {
     "country_from": [
            {
                "country": "SG",
                "payment_service": [
                    {
                        "type": "bank transfer",
                         "speed": {
                          "unit": "days",
                         "number": "2"
                     },
                    }
                ]
            },
            {
                "country": "TH",
                "payment_service": [
                    {
                        "type": "credit",
                         "speed": {
                          "unit": "days",
                          "number": "1"
                      },
                    }
                ]
            }
        ]
    },
]

预期产出:

Speed: 2 Days
javascript arrays object
1个回答
0
投票

您可以使用以下代码。你只需要1个.filter()而不是2.你可以让外面的一个是.forEach()

var sourcecountry = "SG";
var obj = [{
  "country_from": [{
      "country": "SG",
      "payment_service": [{
        "type": "bank transfer",
        "speed": "2 days"
      }]
    },
    {
      "country": "TH",
      "payment_service": [{
        "type": "credit",
        "speed": "1 day"
      }]
    }
  ]
}];
var result = getValue(sourcecountry, obj);
console.log(result);

function getValue(source, ob) {
  var list;
  ob.forEach((cn) => {
    list = cn.country_from.filter((c) => {
      return c.country == source;
    });
  })
  return `Speed: ${list[0].payment_service[0].speed}`;
}
© www.soinside.com 2019 - 2024. All rights reserved.