3 回答

TA貢獻(xiàn)1815條經(jīng)驗 獲得超6個贊
正如其他人所提到的,您的直接問題是字符串與數(shù)字不同,因此您必須將(字符串)數(shù)字轉(zhuǎn)換為實際數(shù)字。除此之外,這里還有一些更短的代碼。
// 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貢獻(xiàn)1830條經(jīng)驗 獲得超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貢獻(xiàn)1825條經(jīng)驗 獲得超4個贊
您需要在使用比較之前將字符串解析為數(shù)字,否則它將按字典順序匹配為字符串而不是數(shù)字
console.log("22" > "3")
console.log( "22" > 3) // implicit conversion to number
console.log(+"22" > +"3") // explicitly converted to number
添加回答
舉報