javascript - 当数组中的两位数很少时,查找最大数会返回错误值

标签 javascript arrays loops

我试图找到数组中的最大数字。但只有当所有数字都是个位数时,我的代码才会给出正确的值。如果我包含两位数,它不会考虑。

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/

相关文章:

javascript - 无论如何在javascript中实现XOR

javascript - ajax 显示隐藏滚动到最上面的问题

javascript - mapDispatchToProps 应该分派(dispatch)初始化操作吗?

PHP:将多维数组转换为字符串

python - 循环运行后列表中的值发生变化

MySQL存储过程用游标查找所有错误日期值

javascript - 如何在 JavaScript 中访问 Chrome 拼写检查建议

php - 如何使用 php 从数组值中减去数字?

java - HackerRank 上的一维数组游戏

node.js - 获取 "throw new Error(' 回调已被调用 .')"