vue中实现,其他框架中方法类似,代码如下:
let lineData1 = [100, 50, 200, 150];
let lineData2 = [50, 260, 100, 50];
let maxNum = this.setYAxisMaxVal([lineData1,lineData2]);
setYAxisMaxVal(arrayF) {
const flatten = (arr) => {
while (arr.some((item) => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
};
const returnMaxValue = (array, referMax) => {
try {
if (Math.max(...array.flat(Infinity)) > referMax) {
referMax = referMax - (Math.max(...array.flat(Infinity)) % referMax) + Math.max(...array.flat(Infinity));
}
return referMax;
} catch (error) {
if (Math.max(...flatten(array)) > referMax) {
referMax = referMax - (Math.max(...flatten(array)) % referMax) + Math.max(...flatten(array));
}
return referMax;
}
};
let maxValue = 50;
maxValue = returnMaxValue(arrayF, maxValue);
return maxValue;
},
数组中最大数是260,这是以50位一个刻度,计算结果如图:
满足刻度等距离