簡體   English   中英

如何從具有最大值的嵌套JSON數組對象獲取元素

[英]How to get element from nested JSON Array object with max value

我希望類別1的最大值為157。我可以通過使用for或forEach來實現。 但是有人可以指導我如何使用ES6來實現這一目標嗎?

我也想要完整的對象,因此也可以使用其他字段。 例如。 到期

{
                "data": [
                    {
                        "expiry": "2020-01-01T00:00:00",
                        "rates": [
                            {
                                "name": "Category 1",
                                "amount": 57
                            },
                            {
                                "name": "Category 2",
                                "amount": 55
                            }
                        ]
                    },
                    {
                        "expiry": "2020-01-01T00:00:00",
                        "rates": [
                            {
                                "name": "Category 1",
                                "amount": 157
                            },
                            {
                                "name": "Category 2",
                                "amount": 25
                            }
                        ]
                    },
                    {
                        "expiry": "2020-01-01T00:00:00",
                        "rates": [
                            {
                                "name": "Category 1",
                                "amount": 27
                            },
                            {
                                "name": "Category 2",
                                "amount": 45
                            }
                        ]
                    },
                ]
            };

嘗試這個 :

 var jsonObj = { "data": [{ "expiry": "2020-01-01T00:00:00", "rates": [{ "name": "Category 1", "amount": 57 }, { "name": "Category 2", "amount": 55 } ] }, { "expiry": "2020-01-01T00:00:00", "rates": [{ "name": "Category 1", "amount": 157 }, { "name": "Category 2", "amount": 25 } ] }, { "expiry": "2020-01-01T00:00:00", "rates": [{ "name": "Category 1", "amount": 27 }, { "name": "Category 2", "amount": 45 } ] } ] }; var arr = []; for (var i of jsonObj.data) { arr.push(i.rates.find((obj) => obj.name === 'Category 1')); } var maxValue = Math.max.apply(Math, arr.map(function(obj) { return obj.amount; })); console.log(maxValue); // 157 

試試吧

 var jsonData= { "data": [{ "expiry": "2020-01-01T00:00:00", "rates": [{ "name": "Category 1", "amount": 57 }, { "name": "Category 2", "amount": 55 } ] }, { "expiry": "2020-01-01T00:00:00", "rates": [{ "name": "Category 1", "amount": 157 }, { "name": "Category 2", "amount": 25 } ] }, { "expiry": "2020-01-01T00:00:00", "rates": [{ "name": "Category 1", "amount": 27 }, { "name": "Category 2", "amount": 45 } ] } ] }; var vAllAmountForCategory1=[]; for (i = 0; i < jsonData.data.length; i++) { var pData= jsonData.data[i]; for (j = 0; j < jsonData.data[i].rates.length; j++) { if(jsonData.data[i].rates[j].name=="Category 1"){ vAllAmountForCategory1.push(jsonData.data[i].rates[j].amount); } } } var vValueAmountSortingInDesc=vAllAmountForCategory1.sort(function(a, b){return b - a}); console.log("The max amount for 'Category 1' is: "+vValueAmountSortingInDesc[0]); 

**或者您也可以使用** LinkJS

暫無
暫無

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

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