Как получить максимальные и минимальные значения конкретных значений во вложенном массиве с помощью JavaScript?

1

Я хочу взять максимум и минимум определенных значений во вложенном массиве.

Примером может быть вложенный массив в формате [широта, долгота].

Вложенный массив, который я хочу ввести, - [[40, 50], [50, 60], [60, 70]].

Максимальная долгота должна составлять 70 и мин. Долгота должна составлять 50.

Максимальная широта должна выдавать 60 и мин. Ширина должна выдавать 40.

Средняя долгота должна составлять 60, а средняя широта должна составлять 50.

Теперь мой вопрос: как взять значения max и min значений долготы и широты во вложенном массиве и найти среднее значение отдельно с помощью JavaScript?

  • 0
    Пожалуйста, попробуйте сделать это самостоятельно, и если у вас возникнут проблемы, задайте более конкретный вопрос, показывая код, который вы использовали, и описание того, что не сработало.
Теги:
arrays

3 ответа

0

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

Что-то вроде этого:

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

Используя метод Array#reduce, вы можете достичь этого "функциональным" способом.

Каждый метод начинает сокращение с начального значения, взятого из входного массива, и затем выполняет итерацию через массив, который ищет и обновляет текущий минимум или максимум в массиве по мере его поступления.

Следуя этому подходу, "средние" методы реализуются путем составления как "минимального", так и "максимального" методов и усреднения возвращаемого числового результата:

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))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню