我试图找到数组中的最大数字。但只有当所有数字都是个位数时,我的代码才会给出正确的值。如果我包含两位数,它不会考虑。
const numb = ['7', '10', '8', '6', '7'];
let arr1 = numb[0];
for (let i = 1; i < numb.length; i++) {
if (numb[i] >= arr1) {
arr1 = numb[i];
}
}
console.log(arr1);
const numb = ['7', '9', '8', '6', '7'];
let arr1 = numb[0];
for (let i = 1; i < numb.length; i++) {
if (numb[i] >= arr1) {
arr1 = numb[i];
}
}
console.log(arr1);
第一个代码给了我输出 8,而它应该是 10。 而第二个给了我9。 我在这里缺少什么?
最佳答案
您正在比较字符串 - 这些字符串是按字典顺序进行比较的。
const numb = [7, 10, 8, 6, 7];
let arr1 = numb[0];
for (let i = 1; i < numb.length; i++) {
if (numb[i] >= arr1) {
arr1 = numb[i];
}
}
console.log(arr1);
另请注意,查找数组中最大数的最简单方法是使用 Math.max
展开。
const numb = [7, 10, 8, 6, 7];
let arr1 = Math.max(...numb);
console.log(arr1);
关于javascript - 当数组中的两位数很少时,查找最大数会返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56658243/