我想從具有極小值的javascript對象獲取密鑰。從具有最小值的javascript對象獲取密鑰
var myobj = {"1632":45,"1856":12,"1848":56,"1548":34,"1843":88,"1451":55,"4518":98,"1818":23,"3458":45,"1332":634,"4434":33};
我必須得到具有最小值的鑰匙。即:
1856
努力去獲得。我是新的對象操縱。
我想從具有極小值的javascript對象獲取密鑰。從具有最小值的javascript對象獲取密鑰
var myobj = {"1632":45,"1856":12,"1848":56,"1548":34,"1843":88,"1451":55,"4518":98,"1818":23,"3458":45,"1332":634,"4434":33};
我必須得到具有最小值的鑰匙。即:
1856
努力去獲得。我是新的對象操縱。
你可以試試這個:
var xx={"1632":45,"1856":12,"1848":56,"1548":34,"1843":88,"1451":55,"4518":98,"1818":23,"3458":45,"1332":634,"4434":33};
var z=_.keys(_.pick(xx, function(value, key, object) {
return (value==_.min(_.values(xx)));
}))[0];
document.getElementById("my_div").innerHTML=z;
<script src="http://underscorejs.org/underscore-min.js"></script>
<div id="my_div"> </div>
第三方庫underscore.js已被使用。你應該嘗試一下:
沒有足夠的jQuery! (意思是:爲什麼你需要第三方庫來完成這麼簡單的任務?) – deceze
腠可以使用Array#reduce
。
var object = { "1632": 45, "1856": 12, "1848": 56, "1548": 34, "1843": 88, "1451": 55, "4518": 98, "1818": 23, "3458": 45, "1332": 634, "4434": 33 },
key = Object.keys(object).reduce(function (r, a, i) {
return !i || +object[a] < +object[r] ? a : r;
}, undefined);
console.log(key);
遍歷對象的屬性和獲得基於最小值鍵。
var myjson = {
"1632": 45,
"1856": 12,
"1848": 56,
"1548": 34,
"1843": 88,
"1451": 55,
"4518": 98,
"1818": 23,
"3458": 45,
"1332": 634,
"4434": 33
};
// get object keys array
var keys = Object.keys(myjson),
// set initial value as first elemnt in array
res = keys[0];
// iterate over array elements
keys.forEach(function(v) {
// compare with current property value and update with the min value property
res = +myjson[res] > +myjson[v] ? v : res;
});
console.log(res);
學習的方法,通過對循環運行:
var myobj = {"1632":45,"1856":12,"1848":56,"1548":34,"1843":88,"1451":55,"4518":98,"1818":23,"3458":45,"1332":634,"4434":33};
// Get the keys of myobj so we can iterate through it
var keys = Object.keys(myobj);
// Iterate through all the key values
var minimumKey = keys[0];
for(var i = 1; i < keys.length; i++){
var minimum = myobj[minimumKey];
var value = myobj[keys[i]];
if(minimum > value) minimumKey = keys[i];
}
console.log(minimumKey, myobj[minimumKey]);
一個功能更強大的方法:
var myobj = {"1632":45,"1856":12,"1848":56,"1548":34,"1843":88,"1451":55,"4518":98,"1818":23,"3458":45,"1332":634,"4434":33};
var minimum = Object.keys(myobj).map(function(key){
return {
"key": key,
"value": myobj[key]
}
}).sort(function(a, b){
return a.value - b.value
})[0];
console.log(minimum);
console.log(minimum.key);
console.log(minimum.value);
是的,對不起提。有更新答案。 –