首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JavaScript获取嵌套数组中特定值的最大值和最小值?

问如何使用JavaScript获取嵌套数组中特定值的最大值和最小值?
EN

Stack Overflow用户
提问于 2018-10-29 08:22:04
回答 3查看 94关注 0票数 1

我想要取嵌套数组中特定值的最大值和最小值。

例如,一个格式为纬度,经度的嵌套数组。

我想要输入的嵌套数组是[40,50,50,60,60,70]。

最大经度应输出70,最小经度应输出50。

最大纬度应输出60,最小纬度应输出40。

平均经度应该输出60,平均纬度应该输出50。

现在我的问题是,如何获取嵌套数组中经度和纬度值的最大值和最小值,并使用JavaScript分别求出平均值?

EN

回答 3

Stack Overflow用户

发布于 2018-10-29 08:32:16

下面这样的内容如何:

代码语言:javascript
复制
var numbers = [[1, 5], [2, 3], [4,10]];
// max for o[0];
Math.max.apply(Math, numbers.map(function(o) { return o[0]; }));
4
// max for o[1]
Math.max.apply(Math, numbers.map(function(o) { return o[1]; }));
10
// min for o[0]
Math.min.apply(Math, numbers.map(function(o) { return o[0]; }));
1
// min for o[1]
Math.min.apply(Math, numbers.map(function(o) { return o[1]; }));
3

希望能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2018-10-29 08:33:03

​

代码语言:javascript
复制
const latlon = [[40, 50], [50, 60], [60, 70]]

const lat = latlon.map(a => a[0])
const lon = latlon.map(a => a[1])

const maxLat = Math.max(...lat)
const minLat = Math.min(...lat)
const avgLat = (lat.reduce((acc,cur) => acc + cur, 0))/lat.length
console.log(maxLat, minLat, avgLat)

const maxLon = Math.max(...lon)
const minLon = Math.min(...lon)
const avgLon = (lon.reduce((acc,cur) => acc + cur, 0))/lon.length
console.log(maxLon, minLon, avgLon)

​

票数 0
EN

Stack Overflow用户

发布于 2018-10-29 08:41:50

使用Array#reduce方法,您可以通过一种“函数式”方式来实现这一点。

每个方法都从从输入数组中获取的初始值开始缩减,然后遍历数组,查找并更新数组中的当前最小值或最大值。

按照这种方法,"average“方法是通过组合"minimum”和"maximum“方法,并对它们返回的数值结果求平均来实现的:

​

代码语言:javascript
复制
var array = [[40, 50], [50, 60], [60, 70]]

const findMinLatitude = (arr) => {

  return arr.reduce((min, item) => {
    
    return Math.min(min, item[0])
    
  }, arr[0][0])
}

const findMaxLatitude = (arr) => {

  return arr.reduce((max, item) => {
    
    return Math.max(max, item[0])
    
  }, arr[0][0])
}

const findAvgLatitide = (arry) => {
  
  return (findMinLatitude(arry) + findMaxLatitude(arry)) * 0.5
}

const findMinLongitude = (arr) => {

  return arr.reduce((min, item) => {
    
    return Math.min(min, item[1])
    
  }, arr[0][1])
}

const findMaxLongitude = (arr) => {

  return arr.reduce((max, item) => {
    
    return Math.max(max, item[1])
    
  }, arr[0][1])
}

const findAvgLongitude = (arry) => {
  
  return (findMinLongitude(arry) + findMaxLongitude(arry)) * 0.5
}

console.log('Min latitude', findMinLatitude(array))
console.log('Max latitude', findMaxLatitude(array))
console.log('Average latitude', findAvgLatitide(array))
console.log('Min longitude', findMinLongitude(array))
console.log('Max longitude', findMaxLongitude(array))
console.log('Average longitude', findAvgLongitude(array))

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53037272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档