gpt4 book ai didi

javascript - 非常简单的数组、循环和逻辑比较问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:33 25 4
gpt4 key购买 nike

非常简单的问题:我正在尝试比较数组中的值,但我完全困惑于为什么我的比较逻辑失败。不知何故,在我的循环过程中,6 被评估为> 524。关于我做错了什么有什么想法吗?我完全被难住了。这是代码,谢谢!

function highAndLow(numbers){

var compArr = numbers.split(" ");

var highNum = compArr[0]
var lowNum = compArr[0];


for (i = 1; i < compArr.length; i++) {
if (compArr[i] > highNum) {
highNum = compArr[i]
console.log(highNum)
}
}

for (i = 1; i < compArr.length; i++) {
if (compArr[i] < lowNum) {
lowNum = compArr[i]
}
}

return highNum + " " + lowNum
}

highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")

同样,我不知道如何,但我在控制台中得到的结果是 highNum 为 6(不正确),lowNum 为 -214(正确)。我是否遗漏了一些明显的东西?

最佳答案

compArr 的元素是字符串,因此它们是按字典顺序进行比较,而不是按数字进行比较。您应该创建一个数字数组:

var compArr = numbers.split(" ").map(Number);

function highAndLow(numbers){

var compArr = numbers.split(" ").map(Number);

var highNum = compArr[0]
var lowNum = compArr[0];


for (i = 1; i < compArr.length; i++) {
if (compArr[i] > highNum) {
highNum = compArr[i]
console.log(highNum)
}
}

for (i = 1; i < compArr.length; i++) {
if (compArr[i] < lowNum) {
lowNum = compArr[i]
}
}

return highNum + " " + lowNum
}

console.log(highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"));

关于javascript - 非常简单的数组、循环和逻辑比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44400122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com