Как через Math.min.apply получить минимальное значение кроме нуля?

Как получить минимальное значение не 0, а 4 ?

То есть нужно минимальное значение кроме нуля

let obj = {
  0: 124,
  1: 4,
  2: 14,
  3: 0,
  4: 32,
  5: 78,
};

let all = Object.keys(obj).map(function(key){ return obj[key]; });
let min = Math.min.apply(null, all);
let max = Math.max.apply(null, all);

console.log(min, max);


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

Автор решения: Zhihar

так используйте filter и уберите нули

let obj = {
  0: 124,
  1: 4,
  2: 14,
  3: 0,
  4: 32,
  5: 78,
};

let all = Object.keys(obj).map(key => obj[key]).filter(key => key != 0);
let min = Math.min.apply(null, all);
let max = Math.max.apply(null, all);

console.log(min, max);

Ну и изврата, если хочется решить только с помощью mapЖ

let obj = {
  0: 124,
  1: 4,
  2: 14,
  3: 0,
  4: 32,
  5: 78,
};

let min = Math.min(...Object.values(obj).map(value => value ? value : (Math.min(...Object.values(obj)) ?  Math.min(...Object.values(obj)) : Math.max(...Object.values(obj)))))
let max = Math.max(...Object.values(obj).map(value => value ? value : (Math.max(...Object.values(obj)) ?  Math.max(...Object.values(obj)) : Math.min(...Object.values(obj)))))

console.log(min, max)

→ Ссылка