我正在编写一段代码,需要在集合中映射最小值和最大值。在我将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。解决方案是将两者切换。
针对此问题的所有人的解决方案,请参考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。解决方案是将两者切换。