从下面的对象中,如何从具有最大索引键的属性中获取“空气”读数,即4? (30.9)
{
1: {
air: "31.2",
evap: "25.3",
t_condenser: "43.8"
},
2: {
air: "31.1",
evap: "25.3",
t_condenser: "43.6"
},
3: {
air: "31.0",
evap: "25.3",
t_condenser: "43.5"
},
4: {
air: "30.9",
evap: "25.2",
t_condenser: "43.3"
}
}
我尝试过以下方法,尝试获取最后一个密钥,但它只读取undefined:
$.getJSON("handler.php?action=fetchLAE", function(data){
console.log(data.length);
});
答案 0 :(得分:2)
注意:数据格式错误。这就是数组的用途,你的API会返回一个Object。
解决方案:找到数据中的最高键(对象):
data[Object.keys(data).sort().pop()].air
说明:
Object.keys(data)
将所有属性作为数组获取,例如[1,4,3,2]。
现在我们将它按升序排序并取最后一个:
.sort().pop()
因此我们将此属性从对象中取出,并取其空气值
data[4].air
答案 1 :(得分:1)
您可以使用Object.keys()获取对象的键,然后使用Math.max获得最高的键。
var json = {
1: {
air: "31.2",
evap: "25.3",
t_condenser: "43.8"
},
2: {
air: "31.1",
evap: "25.3",
t_condenser: "43.6"
},
3: {
air: "31.0",
evap: "25.3",
t_condenser: "43.5"
},
4: {
air: "30.9",
evap: "25.2",
t_condenser: "43.3"
}
};
var maxKey = Math.max(...Object.keys(json));
var lastElementAir = json[maxKey].air;
console.log(lastElementAir);

答案 2 :(得分:0)
这不是有效的JSON,而是javascript对象。
您可以使用Object.keys
函数获取对象属性,然后使用length属性访问最后一个元素或属性。
console.log(obj[Object.keys(obj).length].air);
var obj = {
1: {
air: "31.2",
evap: "25.3",
t_condenser: "43.8"
},
2: {
air: "31.1",
evap: "25.3",
t_condenser: "43.6"
},
3: {
air: "31.0",
evap: "25.3",
t_condenser: "43.5"
},
4: {
air: "30.9",
evap: "25.2",
t_condenser: "43.3"
}
};
console.log(obj[Object.keys(obj).length].air);