从嵌套的json对象获取最小值
问题描述:
我有我想要的最低价格的json对象。以下是答复。从嵌套的json对象获取最小值
[
{
"room": {
"price": 217,
"available": true
}
},
{
"room": {
"price": 302,
"available": true,
}
},
{
"room": {
"price": 427,
"available": true,
}
}
]
我试图从Stackoverflow一个解决方案,但它不会在个案工作。
var arr = Object.keys(response).map(function (key) { return response[key]; });
var min = Math.min.apply(null, arr);
请帮
答
本地JS的解决方案:
var t =[ { "room": { "price": 217, "available": true } }, { "room": { "price": 302, "available": true, } }, { "room": { "price": 427, "available": true, } } ]
var min = t.map(function(el){return el.room.price}).reduce(function(el){return Math.min(el)});
+0
将您的json转换为js数组谢谢@ red-virus! – lbrutti
答
你有数组不反对,所以你不能使用Object.keys()
。你也可以使用这样的扩展语法。
var data = [{
"room": {
"price": 217,
"available": true
}
}, {
"room": {
"price": 302,
"available": true,
}
}, {
"room": {
"price": 427,
"available": true,
}
}]
var min = Math.min(...data.map(e => e.room.price))
console.log(min)
答
你可以试试这个:使用ES2015
let response = [
{
"room": {
"price": 217,
"available": true
}
},
{
"room": {
"price": 302,
"available": true,
}
},
{
"room": {
"price": 427,
"available": true,
}
}
];
let values = response.map(function(v) {
return v.room.price;
});
var min = Math.min.apply(null, values);
console.log(min)
你也可以让它在一个行:
var min = Math.min.apply(null, response.map((v) => v.room.price));
答
你可以使用Array.protype.reduce()
var rooms = [{
"room": {
"price": 217,
"available": true
}
},
{
"room": {
"price": 302,
"available": true,
}
},
{
"room": {
"price": 427,
"available": true,
}
}
];
console.log(rooms.reduce((prev, curr) => prev.price > curr.price ? curr : prev).room.price);
答
var response = [
{
"room": {
"price": 217,
"available": true
}
},
{
"room": {
"price": 302,
"available": true,
}
},
{
"room": {
"price": 427,
"available": true,
}
}
];
debugger;
if (response && response.length > 0)
{
var min = response[0].room.price;
for (var i = 0; i < response.length; i++)
if (response[i].room.price < min)
min = response[i].room.price;
console.log(min);
}
+0
你或许应该解释你的答案,而不仅仅是邮政编码。 –
什么是'response'对象? –
@AmreshVenugopal我粘贴在上面的json是响应 –
首先,您需要使用JSON.parse – styopdev