簡體   English   中英

數組內的數組在 javascript 中得到 object

[英]Array inside array get object in javascript

你好朋友我有下面的數組,我想得到顯示名稱有迪拜的區域數組項我嘗試使用下面的代碼但不工作

 this.props = { countryListData: [ { "country": { "countryCode": "AE", "displayName": "United Arab Emirates", "repositoryId": "AE" }, "regions": [ { "regionCode": "AE-FU", "displayName": "Fujairah", "repositoryId": "AE-FU", "abbreviation": "FU" }, { "regionCode": "AE-DU", "displayName": "Dubai", "repositoryId": "AE-DU", "abbreviation": "DU" }, { "regionCode": "AE-UQ", "displayName": "Umm al-Quwain", "repositoryId": "AE-UQ", "abbreviation": "UQ" }, { "regionCode": "AE-AJ", "displayName": "Ajman", "repositoryId": "AE-AJ", "abbreviation": "AJ" }, { "regionCode": "AE-AZ", "displayName": "Abu Dhabi", "repositoryId": "AE-AZ", "abbreviation": "AZ" }, { "regionCode": "AE-RK", "displayName": "Ras al-Khaimah", "repositoryId": "AE-RK", "abbreviation": "RK" }, { "regionCode": "AE-SH", "displayName": "Sharjah", "repositoryId": "AE-SH", "abbreviation": "SH" } ], "repositoryId": "100003" } ] }; for (let index = 0; index < this.props.countryListData.length; index++) { for (let j = 0; j < this.props.countryListData[index].regions.length; j++) { console.log("Region Name --->", this.props.countryListData[index].regions[j].displayName); } }

我收到錯誤,例如區域未定義任何人幫助我如何獲得

您可以使用Array.prototype.find來做到這一點:

 const list = [ { "country": { "countryCode": "AE", "displayName": "United Arab Emirates", "repositoryId": "AE" }, "regions": [ { "regionCode": "AE-FU", "displayName": "Fujairah", "repositoryId": "AE-FU", "abbreviation": "FU" }, { "regionCode": "AE-DU", "displayName": "Dubai", "repositoryId": "AE-DU", "abbreviation": "DU" }, { "regionCode": "AE-UQ", "displayName": "Umm al-Quwain", "repositoryId": "AE-UQ", "abbreviation": "UQ" }, { "regionCode": "AE-AJ", "displayName": "Ajman", "repositoryId": "AE-AJ", "abbreviation": "AJ" }, { "regionCode": "AE-AZ", "displayName": "Abu Dhabi", "repositoryId": "AE-AZ", "abbreviation": "AZ" }, { "regionCode": "AE-RK", "displayName": "Ras al-Khaimah", "repositoryId": "AE-RK", "abbreviation": "RK" }, { "regionCode": "AE-SH", "displayName": "Sharjah", "repositoryId": "AE-SH", "abbreviation": "SH" } ], "repositoryId": "100003" } ]; console.log(list[0].regions.find(r => r.displayName === "Dubai"));

外部數組容器有原因嗎? 考慮到數據結構,這似乎是多余的。

您可以使用以下 function 鏈:

this.props = {
  countryListData: [
    {
      "country": {
        "countryCode": "AE",
        "displayName": "United Arab Emirates",
        "repositoryId": "AE"
      },
      "regions": [
        {
          "regionCode": "AE-FU",
          "displayName": "Fujairah",
          "repositoryId": "AE-FU",
          "abbreviation": "FU"
        },
        {
          "regionCode": "AE-DU",
          "displayName": "Dubai",
          "repositoryId": "AE-DU",
          "abbreviation": "DU"
        },
        {
          "regionCode": "AE-UQ",
          "displayName": "Umm al-Quwain",
          "repositoryId": "AE-UQ",
          "abbreviation": "UQ"
        },
        {
          "regionCode": "AE-AJ",
          "displayName": "Ajman",
          "repositoryId": "AE-AJ",
          "abbreviation": "AJ"
        },
        {
          "regionCode": "AE-AZ",
          "displayName": "Abu Dhabi",
          "repositoryId": "AE-AZ",
          "abbreviation": "AZ"
        },
        {
          "regionCode": "AE-RK",
          "displayName": "Ras al-Khaimah",
          "repositoryId": "AE-RK",
          "abbreviation": "RK"
        },
        {
          "regionCode": "AE-SH",
          "displayName": "Sharjah",
          "repositoryId": "AE-SH",
          "abbreviation": "SH"
        }
      ],
      "repositoryId": "100003"
    }
  ]
};

this.props.countryListData.map(c => c.regions.filter((r)=> r.displayName === 'Dubai')).flat()[0]

您可以使用映射來獲取顯示名稱具有“迪拜”的區域數組項

        this.props.countryListData.map((it) =>
            it.regions.map((Arr) => {
              if (Arr.displayName === "Dubai"){
                 console.log(Arr);
                } 
             })
          )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM