2016-06-24 13 views
1

最小値を持つ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 

難しいです。私はオブジェクト操作で新しいです。

+0

はい、申し訳ありません。答えを更新してください。 –

答えて

1

あなたはこれを試すことがあります。

サードパーティのライブラリunderscore.js

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>
が使用されてきました。あなたはそれを試してみてください:

http://underscorejs.org/underscore-min.js

+4

jQueryが不十分です! (意味:そのような単純な仕事のために第三者の図書館がなぜ必要なのですか?) – deceze

2

COUは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);

1

反復と分値に基づいてキーを取得します。

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);
ため、ループによって

0

学習者のアプローチ:

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); 
関連する問題