[英]return property from object with the highest value
我有以下幾點:
$.ajax({
url: 'https://api.m.hostelworld.com/1.5/properties/'+propID+'/?update-cache=true',
dataType: 'json',
headers: {
"Accept-Language": lang
},
success: function(json) {
var numb = 0;
var property;
for (var key in json.rating) {
numb = Math.max(numb, json.rating[key]);
if(json.rating[key] == numb){
console.log(property with the highestNumb);
}
}
highestNumb = numb;
return highestNumb;
}, cache: false
});
我的對象是這樣的:
rating":{
"overall": 92,
"atmosphere": 93,
"cleanliness": 94,
"facilities": 89,
"staff": 94,
"security": 92,
"location": 88,
"valueForMoney": 92
},
maximumNumb var返回所有值中的最大值,我如何返回與該最大值相關聯的屬性,可能會出現2個屬性具有相同最大值的情況。
maximumNumb將返回94,但在這種情況下,我還想訪問與94相關聯的屬性。
假設你的對象是
var obj = {"rating":{
"overall": 92,
"atmosphere": 93,
"cleanliness": 94,
"facilities": 89,
"staff": 94,
"security": 92,
"location": 88,
"valueForMoney": 92
} // ...}
你可以做:
var maxValue = -1;
var maxKey;
for (var key in obj.rating) {
if (obj.rating[key] > maxValue) {
maxValue = obj.rating[key];
maxKey = key;
}
}
console.log(maxKey) // cleanliness
請注意,如果兩個屬性具有相同的值,這將返回第一個遇到的屬性。
maximumNumb將返回94,但在這種情況下,我還想訪問與94相關聯的屬性。
您需要記住價值最高的鑰匙
做了
success: function(json) {
var numb = 0;
var highestProp;
for (var key in json.rating) {
if ( json.rating[key] > numb )
{
numb = json.rating[key];
highestProp = key;
}
}
return highestProp;
}
演示
var rating = { "overall": 92, "atmosphere": 93, "cleanliness": 94, "facilities": 89, "staff": 94, "security": 92, "location": 88, "valueForMoney": 92 }; var numb = 0; var highestProp; for (var key in rating) { if (rating[key] > numb) { numb = rating[key]; highestProp = key; } } alert("highest property " + highestProp ); alert("highest value " + numb );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.