0

我有一个类似的数据结构->

var prices = [
    {currency: '$', value: 52},
    {currency: '$', value: 139},
    {currency: '$', value: 31},
    {currency: '$', value: 5}
];

我想从该数据中知道最高价格。我知道我可以遍历数组并收集数据,但是最好的方法是什么?

4

3 回答 3

6

这样的代码:

Math.max.apply(Math, prices.map(function(p) {return p.value;}));
于 2012-12-04T22:03:28.050 回答
2

我们可以通过使用来做到这Array.prototype.map一点Math.max。由于.map()返回一个Array,我们可以使用它来调用Math.maxby 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 );

这将返回相同的结果,我们只是以编程方式创建它。

于 2012-12-04T22:03:14.467 回答
1
prices.sort(function(a, b) {
    return b.value - a.value;
});

然后prices[0].value将是最高的。

于 2012-12-04T22:08:46.133 回答