Как получить максимальное значение в объекте относительно нуля?

Подскажите пожалуйста как мне получить максимальное значение ключа d

Из примера ниже видно что значение может быть положительным или отрицательным.

Максимальное это либо положительное максимальное, либо отрицательное относильно 0 (нуля).

И вывести это значение через Math.abs() тоесть положительным, если оно было отрицательное

// образец данных, здесь максимальное d это -574815.2999999998
// так как -574815 от 0 оно больше, чем 26496 от 0
let data = {
  1662336000: { 
    0.0357: {
      v: 742397.8, 
      d: 26496.799999999992
    },
    0.0352: {
      v: 1761799.900000001,
      d: -574815.2999999998
    }
  }
};

Знаю что можно как то через эту функцию, но не понимаю каким образом это можно реализовать

Object.entries(data).reduce((p, c) => {});

Ответы (2 шт):

Автор решения: Danil Apsadikov

Для поиска абсолютного максимума в массиве:

const array1 = [1, 2, 4, 3, 0, 10, -11, 3];

const res = array1.reduce(
  (previous, current) => {
    if (Math.abs(previous) > Math.abs(current)) {
      return Math.abs(previous);
    } else {
      return Math.abs(current);
    }
  }
);

console.log(res);

→ Ссылка
Автор решения: Qwertiy

Если с переполнением стека не грохнется, то можно так:

let data = {
  1662336000: { 
    0.0357: {
      v: 742397.8, 
      d: 26496.799999999992
    },
    0.0352: {
      v: 1761799.900000001,
      d: -574815.2999999998
    }
  }
}

var res = Math.max(...Object.values(data).flatMap(Object.values).map(x => Math.abs(x.d)))
console.log(res)

А можно так:

let data = {
  1662336000: { 
    0.0357: {
      v: 742397.8, 
      d: 26496.799999999992
    },
    0.0352: {
      v: 1761799.900000001,
      d: -574815.2999999998
    }
  }
}

var res = Object.values(data).flatMap(Object.values).reduce((r, {d}) => Math.max(r, Math.abs(d)), 0)
console.log(res)

→ Ссылка