如何通过在JavaScript对象中的多个键/值对中查找最小值来选择键/值配对
How do I select a key/value pair by finding the smallest value in a number of key/value pairs in a JavaScript object?
我有一个看起来像这样的对象:
var obj = {
thingA: 5,
thingB: 10,
thingC: 15
}
我希望能够基于5是与其他键/值对相比最小的值这一事实来选择键/值配对thingA: 5
。
没有内置的功能,但是:
var minPair = Object.keys(obj).map(function(k) {
return [k, obj[k]];
}).reduce(function(a, b) {
return b[1] < a[1] ? b : a;
});
minPair // ['thingA', 5]
或者,无ECMAScript 5扩展:
var minKey, minValue;
for(var x in obj) {
if(obj.hasOwnProperty(x)) {
if(!minKey || obj[x] < minValue) {
minValue = obj[x];
minKey = x;
}
}
}
[minKey, minValue] // ['thingA', 5]
这里有一个简单的函数,可以做你想要的事情-
function getSmallest(obj)
{
var min,key;
for(var k in obj)
{
if(typeof(min)=='undefined')
{
min=obj[k];
key=k;
continue;
}
if(obj[k]<min)
{
min=obj[k];
key=k;
}
}
return key+':'+min;
}
//test run
var obj={thingA:5,thingB:10,thingC:15};
var smallest=getSmallest(obj)//thingA:5
相关文章:
- Angular JS在一行中查找最小值
- 使用函数从数组中查找最小值和最大值
- 如何通过在JavaScript对象中的多个键/值对中查找最小值来选择键/值配对
- 在带有对象的数组中查找最小值、最大值
- 从包含对象的数组中查找最小值的最佳方法
- 在 javascript 中查找最小值
- 在没有 Math.min 的情况下查找数组中的最小值
- 如何在javascript中查找嵌套数组的最大/最小值
- 在javascript数组中查找最小-最大值
- 正在Nedb数据表中查找最小值
- 在javascript中的数组中查找多个最小值的索引
- Mapbox GL JS -数据驱动样式-查找最小值层中数据的最大值或范围
- 在javascript数组中查找最小值
- 查找两个数组之间的公共最小值
- 使用D3.JS查找数组的最小值和最大值,而不是普通的Javascript
- 如何使用jquery查找td:conths(textbox)的最小值
- 如何在键/值数据结构中查找最小值
- 使用 JavaScript 查找数组中的最小值和最大值
- 在csv文件中查找最小值和最大值
- 在堆栈中查找最小值-不打印任何结果