我正在尋找一種很好的方式來查找數組的最大ABSOLUTE值。在Javascript數組中找到絕對最大值
我的陣列是即
var array = [10,20,40,-30,-20,50,-60];
然後:
Math.max.apply(null,array);
會導致 '50'。但是,實際上,我希望它返回'60'。
該選項是使用Math.abs創建第二個數組,但實際上我想知道是否可以組合應用函數,所以它是一個優雅的解決方案。
我正在尋找一種很好的方式來查找數組的最大ABSOLUTE值。在Javascript數組中找到絕對最大值
我的陣列是即
var array = [10,20,40,-30,-20,50,-60];
然後:
Math.max.apply(null,array);
會導致 '50'。但是,實際上,我希望它返回'60'。
該選項是使用Math.abs創建第二個數組,但實際上我想知道是否可以組合應用函數,所以它是一個優雅的解決方案。
Math.max.apply(null, array.map(Math.abs));
如果目標不支持Array.prototype.map(IE < = 8)瀏覽器,使用the polyfill或類似sugar.js庫。
試試這個:
var array = [10,20,40,-30,-20,50,-60];
var absMax = array.reduce(function(max, item){
return Math.max(Math.abs(max),Math.abs(item));
});
謝謝,上面的答案有點優雅,但是你給了我一些不錯的'aha'。還有很多要了解JS。 –
你5S更快:-) –
那麼容易......謝謝。 –