出现的问题:
接受后台传过来的数据,取出最大值,但是的出来的结果却不是想要的。
let max = 0;
//arr 是后台传过来的数组
arr.forEach((num) => {
if (!(num === undefined || num === '')) {
if (max < num) {
max = num;
}
console.log("num:" + num + " max:" + max)
}
})
arr: [“9”, “26”, “5”, “4”, “56”, “10”, “24”, “52”, “59”]
得出的最大值却是:9
尝试修改数组值后发现,直接比较大小,比较的是每个数字的第一个
原因:
因为上述数组里保存的数字是字符串类型,两个字符串比较,会比较ASCII码,所以会出现问题。
解决办法:
先将值转成int类型,再进行比较 parseInt()
let max = 0;
console.log(arr)
arr.forEach((num) => {
if (!(num === undefined || num === '')) {
if (parseInt(max) < parseInt(num)) { //修改这里
max = num;
}
console.log("num:" + num + " max:" + max)
}
})
结束~