0

I have following json object

       var testObj = {
        "CompanyA": [
            { "geography": [ "Europe", "Germany" ], "productLine": "Produce", "revenue": { "2022": 130143, "2021": 172122, "2020": 103716 } },
            { "geography": [ "Europe", "France" ], "productLine": "Clothing", "revenue": { "2022": 85693, "2021": 91790, "2020": 77650 } },
            { "geography": [ "Europe", "France" ], "productLine": "Electronics", "revenue": { "2022": 121987, "2021": 62435, "2020": 65834 } },
            { "geography": [ "Europe", "Germany" ], "productLine": "Produce", "revenue": { "2022": 130143, "2021": 107447, "2020": 145543 } },
            { "geography": [ "Europe", "Germany" ], "productLine": "Clothing", "revenue": { "2022": 77903, "2021": 97139, "2020": 110346 } },
            { "geography": [ "Europe", "Germany" ], "productLine": "Electronics", "revenue": { "2022": 110897, "2021": 155282, "2020": 128696 } },
            { "geography": [ "South America", "Brazil" ], "productLine": "Clothing", "revenue": { "2022": 66217, "2021": 55798, "2020": 66643 } },
            { "geography": [ "South America", "Brazil" ], "productLine": "Electronics", "revenue": { "2022": 94262, "2021": 100560, "2020": 56272 } }
          ],
          "CompanyB": [
            { "geography": [ "Europe", "United Kingdom" ], "productLine": "Produce", "revenue": { "2022": 281110, "2021": 242965, "2020": 221863 } },
            { "geography": [ "Europe", "United Kingdom" ], "productLine": "Clothing", "revenue": { "2022": 168270, "2021": 121161, "2020": 60919 } },
            { "geography": [ "Europe", "United Kingdom" ], "productLine": "Electronics", "revenue": { "2022": 239537, "2021": 131959, "2020": 97047 } },
            { "geography": [ "Europe", "Ireland" ], "productLine": "Produce", "revenue": { "2022": 74963, "2021": 43406, "2020": 54623 } },
            { "geography": [ "Europe", "Ireland" ], "productLine": "Clothing", "revenue": { "2022": 44872, "2021": 24797, "2020": 16010 } },
            { "geography": [ "Europe", "Ireland" ], "productLine": "Electronics", "revenue": { "2022": 63877, "2021": 94185, "2020": 87098 } }
          ],
         .........
       };

There are three dropdowns in my page like Company, Geography(CountryName2nd element) and ProductLine...

Based on the selected dropdown values i need to pick up the revenue ..

I was able to capture the companyname, Geography(countryName) and productLine chosen by user but struggling to get to that particular revenue...

I can get the revenue like this

console.log(testObj[company][1].revenue);

but here i am not sure of the particular record because i need to choose based on country and productLine

I got the solution for this. But i want to know whats is the best way of parsing the json objects... is it reconstructing according to our needs or looping through the json object...

4

2 に答える 2

0

このように一致するオブジェクトをフィルタリングできます

var company = "CompanyA";
var country = "Germany";
var productLine = "Produce";

var res = testObj[company].filter(function(el){
  return el.geography[1] == country && productLine == el.productLine;
});
console.log(res);
于 2013-04-21T08:45:58.007 に答える