3 回答
TA贡献1815条经验 获得超6个赞
正如其他人所提到的,您的直接问题是字符串与数字不同,因此您必须将(字符串)数字转换为实际数字。除此之外,这里还有一些更短的代码。
// String of space delimited numbers
var string = "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6";
// Split into an array
var nums = string.split(' ');
// Use built-in Math method which with some nifty ES6 syntax
// Note that Math.max/min automatically convert string args to number
var highNum = Math.max(...nums);
var lowNum = Math.min(...nums);
TA贡献1830条经验 获得超9个赞
也许你试试这些。
function highAndLow(numbers){
numbers=numbers.split(" ");
let lowNum =+ numbers[0];
let highNum =+ numbers[0];
console.log(numbers);
for (var i = 1; i < numbers.length; i++) {
let num =+ numbers[i];
if (num > highNum){
highNum = num
} else if(num < lowNum) {
lowNum = num
}
}
console.log(highNum)
return highNum + " " + lowNum
}
TA贡献1825条经验 获得超4个赞
您需要在使用比较之前将字符串解析为数字,否则它将按字典顺序匹配为字符串而不是数字
console.log("22" > "3")
console.log( "22" > 3) // implicit conversion to number
console.log(+"22" > +"3") // explicitly converted to number
添加回答
举报