得到最高數我有一個類似的數據結構 - >如何從嵌套結構
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}
];
我想知道,從該數據的最高價。我知道我可以遍歷數組並收集數據,但是這樣做的最好方法是什麼?
我們可以使用Array.prototype.map
和Math.max
一起做得很整齊。由於.map()
返回數組,我們可以使用它來調用Math.max
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);
這將返回相同的結果,我們只是創造了它編程。
這樣的代碼:
Math.max.apply(Math, prices.map(function(p) {return p.value;}));
prices.sort(function(a, b) {
return b.value - a.value;
});
然後prices[0].value
將是最高的。
這將改變「價格」的順序。 – oleq
任何解決方案都會做一個循環,可能是內部的 - 但它必須完成(數據似乎沒有從樣本中排序,如果不是這樣 - 答案可能會不同)。 **你在找什麼?**(或換句話說:定義「最好的方式」)一個javascript短期解決方案?有效的解決方案?或理論上的答案應該如何完成? – amit
我只是覺得我目前的解決方案太複雜了。也許他們不是...... –