Fre*_*all 9 javascript arrays jquery coffeescript
我有一个如下所示的数组:
array = [[1, 5], [4, 7], [3, 8], [2, 3],
[12, 4], [6, 6], [4, 1], [3, 2],
[8, 14]]
Run Code Online (Sandbox Code Playgroud)
我需要的是从集合的第一个值开始的最大数字,所以在这种情况下12.在线查看一些示例,我看到实现这一目标的最佳方式是:
Math.max.apply Math, array
Run Code Online (Sandbox Code Playgroud)
问题是,这仅适用于单维数组.我怎么会为我的Senario捏造这个?(允许jquery)
最终解决方案:
这不是问题的一部分,但我需要数组中的最小值和最大值,这会改变一些事情.
unless device.IE
justTheDates = magnitudeArray.map (i) -> i[0]
@earliest = Math.min.apply Math, justTheDates
@latest = Math.max.apply Math, justTheDates
else
@earliest = magnitudeArray[0][0]
@latest = magnitudeArray[0][0]
for magnitudeItem in magnitudeArray
@earliest = magnitudeItem[0] if magnitudeItem[0] < @earliest
@latest = magnitudeItem[0] if magnitudeItem[0] > @latest
Run Code Online (Sandbox Code Playgroud)
小智 13
你可以用.reduce()......
array.reduce(function(max, arr) {
return Math.max(max, arr[0]);
}, -Infinity)
Run Code Online (Sandbox Code Playgroud)
这是一个不使用的版本Math.max......
array.reduce(function(max, arr) {
return max >= arr[0] ? max : arr[0];
}, -Infinity);
Run Code Online (Sandbox Code Playgroud)
......和jsPerf测试.
http://jsfiddle.net/zerkms/HM7es/
var max = Math.max.apply(Math, arr.map(function(i) {
return i[0];
}));?
Run Code Online (Sandbox Code Playgroud)
因此,首先您使用array.map()将二维数组转换为平面数组,然后使用Math.max()
| 归档时间: |
|
| 查看次数: |
13429 次 |
| 最近记录: |