Я работаю над фрагментом кода, где мне нужно отобразить минимальные и максимальные значения в коллекции. Это работало нормально, пока я не ввел 0 значений в коллекцию, которая теперь возвращает NaN. Если я запустил функцию без значений 0, она будет работать так, как задумано.
const minVal = Math.min(...this.wells.map(d => Number(d.valueText) || Number(d.value)));
const maxVal = Math.max(...this.wells.map(d => Number(d.valueText) || Number(d.value)));
Так что, если у нас есть значения от 2 до 0,00003 - 0, минимальное значение должно быть 0, а максимальное значение должно быть 2.
Теперь, если это было, скажем, от 10 до 0,000000001, это будет работать, или если у нас будет от 1 до 10000, это будет работать.
let wells = [];
wells.push({
posCol: 0,
posRow: 0,
valueText: 2
});
wells.push({
posCol: 1,
posRow: 0,
valueText: 4
});
wells.push({
posCol: 2,
posRow: 0,
valueText: 0
});
const minVal = Math.min(...wells.map(d => Number(d.valueText) || Number(d.value)));
const maxVal = Math.max(...wells.map(d => Number(d.valueText) || Number(d.value)));
console.log(minVal);
console.log(maxVal);
Ниже я добавлю пример, который будет работать
let wells = [];
wells.push({
posCol: 0,
posRow: 0,
valueText: 2
});
wells.push({
posCol: 1,
posRow: 0,
valueText: 4
});
wells.push({
posCol: 2,
posRow: 0,
valueText: 1
});
const minVal = Math.min(...wells.map(d => Number(d.valueText) || Number(d.value)));
const maxVal = Math.max(...wells.map(d => Number(d.valueText) || Number(d.value)));
console.log(minVal);
console.log(maxVal);
РЕШЕНИЕ ДЛЯ ЛЮБОГО, КОТОРЫЙ ПРОХОДИТ В ЭТОМ ПРОБЛЕМЕ Ref @VLAZ Пояснение
let wells = [];
wells.push({
posCol: 0,
posRow: 0,
valueText: 2
});
wells.push({
posCol: 1,
posRow: 0,
valueText: 4
});
wells.push({
posCol: 2,
posRow: 0,
valueText: 0
});
const minVal = Math.min(...wells.map(d => Number(d.value) || Number(d.valueText)));
const maxVal = Math.max(...wells.map(d => Number(d.value) || Number(d.valueText)));
console.log(minVal);
console.log(maxVal);
Проблема заключалась в том, что значение 0 оценивалось как ложное и, как таковое, приводило к отступлению, которое в этом случае было неопределенным свойством, которое приводило к NaN. Решение состояло в том, чтобы поменять их.