javascript - 当数组中的两位数很少时,查找最大数会返回错误值
问题描述
我试图找到数组中的最大数。但是只有当所有数字都是个位数时,我的代码才会给出正确的值。如果我包含一个两位数,它不会考虑它。
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);
推荐阅读
- firebase - 如何将特定的 ListTile 变量传递给新的页面路由 onTap?
- java - 从 SQS 中检索消息缓慢
- java - 在 Spring @Transactional 方法中获取异常的堆栈跟踪
- mobile - 移动热点名称和密码
- html - 包裹在表头中的浮动元素
- java - JMSCode使用数据库一一发送和接收消息
- c# - 如何从浮点值取回原始值(实数)而不在c#中包含指数符号?
- postgresql - 查询 NOT NULL 但仅当不用作 FK 时
- android - 获取选定的几个复选框的文本android?
- linux - 如何在Shell脚本中调用另一个具有反引号的变量中的函数