[英]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.