selectMax(arr,ten,digit) {
//arr,传过来的数组,ten个位数超过5后对十位上的修改ten(传1就是加十,传2就是加二十),digit小于5对个位修改(传多少就加多少)默认就是(1和5)
ten=ten?ten:1;
digit=digit?digit:5;
let val = [];
arr.forEach(item => {
val.push(item);
})
//获取数组中最大的数
let slefMax = Math.max(...val);
//获取数组最大数据的长度
let len = String(slefMax).length;
if (len == 1) {
//如果长度为1;最大值就为10
slefMax = 10
} else if (len == 2) {
//长度为2时截取个位数/10位数
let ones = String(slefMax).slice(1,)
let other = String(slefMax).slice(0, 1)
if (ones >= 5) {
//个位数大于5十位数加一
slefMax = (other * 1 + ten*1) * 10
} else {
//小于五最大值就十位数拼接5
slefMax = other * 10 + digit*1
}
} else if (len > 2) {
//同理
let ones = String(slefMax).slice(len - 1,);
let tens = String(slefMax).slice(len - 2, len - 1);
let other = String(slefMax).slice(0, len - 2)
if (ones >= 5) {
slefMax = other.concat(String((tens * 1 + ten*1) * 10))
} else {
slefMax = other.concat(String(tens * 10 + digit*1))
}
}
return slefMax
},
如果想用里面的数的话可以let max=this.selectMax(arr);//就可获取
当然还有很大优化空间,但是我目前用的就这么多,所以就没有继续优化,如果有好的想法可以私信我。共同进步当然是最好的,处理的图入下