我有一个类似的数据结构->
var prices = [
{currency: '$', value: 52},
{currency: '$', value: 139},
{currency: '$', value: 31},
{currency: '$', value: 5}
];
我想从该数据中知道最高价格。我知道我可以遍历数组并收集数据,但是最好的方法是什么?
我有一个类似的数据结构->
var prices = [
{currency: '$', value: 52},
{currency: '$', value: 139},
{currency: '$', value: 31},
{currency: '$', value: 5}
];
我想从该数据中知道最高价格。我知道我可以遍历数组并收集数据,但是最好的方法是什么?
这样的代码:
Math.max.apply(Math, prices.map(function(p) {return p.value;}));
我们可以通过使用来做到这Array.prototype.map
一点Math.max
。由于.map()
返回一个Array,我们可以使用它来调用Math.max
by Function.prototype.apply
。结果看起来像
var max = Math.max.apply(null, prices.map(function( entry ) {
return entry.value;
}));
console.log( max ); // 139
上面的语句等于
Math.max( 51, 139, 31, 5 );
这将返回相同的结果,我们只是以编程方式创建它。
prices.sort(function(a, b) {
return b.value - a.value;
});
然后prices[0].value
将是最高的。