我有一个关联数组,如下所示:
var data = {
0: {
'Number_of_Something': 212
},
1: {
'Number_of_Something': 65
},
2: {
'Number_of_Something': 657
}
}
我需要在字段Number_of_Something
中提取最高值,但是,因为它是对象对象中的一个字段,所以它比仅仅按照类似于方法{{{ 3}}
循环遍历对象并存储值,然后在下一个更大时替换它似乎是最简单明了的选项。
我只是问这个问题,以防除了上述方法之外还有一种更简单(更聪明)的方法来实现这个目标吗?
答案 0 :(得分:16)
更简单可以是主观的...... 另一种实现要求的方法是使用Object.keys和Array.prototype.map获取值的数组,并使用您链接的 Math.max 的其他解决方案:
var data = {
0: {
'Number_of_Something': 212
},
1: {
'Number_of_Something': 65
},
2: {
'Number_of_Something': 657
}
}
var max = Math.max.apply(null,
Object.keys(data).map(function(e) {
return data[e]['Number_of_Something'];
}));
答案 1 :(得分:0)
您可以创建自己的(for)循环并以此方式返回最大值。另一个选择是使用像Underscore.js这样的库来为您处理这个问题并保持代码可读。