簡體   English   中英

從 JSON 文件中的對象數組中獲取最小值

[英]Get Minimum Value From Array of Objects from JSON file

這是我的數據。json文件......如果到達是阿姆斯特丹,離開是倫敦,我想要最低成本

有人可以告訴我如何通過它 map

{
"currency":"EUR",
 "deals": [{"departure":"London",
           "arrival":"Amsterdam",
           "cost":160,"transport":"train"},
          {"departure":"London",
           "arrival":"Amsterdam",
           "cost":40,"transport":"car"},
          {"departure":"London",
           "arrival":"Amsterdam",
           "cost":120,"transport":"bus"}]
}

我試過了:

const x = data.deals.map((v)=>{
  if(v.departure==="London" && v.arrival==="Amsterdam"){ 
    return v.cost
  }
}

您可以使用Array#reduce

 const o={currency:"EUR",deals:[{departure:"London",arrival:"Amsterdam",cost:160,transport:"train"},{departure:"London",arrival:"Amsterdam",cost:40,transport:"car"},{departure:"London",arrival:"Amsterdam",cost:120,transport:"bus"}]}; const res = o.deals.reduce((acc, curr) => curr.departure === "London" && curr.arrival === "Amsterdam"? Math.min(acc, curr.cost): acc, Infinity); console.log(res);

 const data = { "currency": "EUR", "deals": [{ "departure": "London", "arrival": "Amsterdam", "cost": 160, "transport": "train" }, { "departure": "London", "arrival": "Amsterdam", "cost": 40, "transport": "car" }, { "departure": "London", "arrival": "Amsterdam", "cost": 120, "transport": "bus" } ] }; const min = data.deals.filter(d => d.departure == "London" && d.arrival == "Amsterdam").reduce((agg, d) => Math.min(agg, d.cost), Infinity); console.log(min);

deals鍵的值是一個數組,因此您可以對其進行排序。

 const arr = [{"departure":"London", "arrival":"Amsterdam", "cost":160,"transport":"train"}, {"departure":"London", "arrival":"Amsterdam", "cost":40,"transport":"car"}, {"departure":"London", "arrival":"Amsterdam", "cost":120,"transport":"bus"}] const filteredArr = arr.filter(a => a.departure === "London" && a.arrival === "Amsterdam") function orderByCost(a, b) { return a["cost"] - b["cost"] } filteredArr.sort(orderByCost) console.log(filteredArr)

現在如果你想要最低成本運輸的object,你可以得到數組的第一個元素

暫無
暫無

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

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