为什么我的 reduce() 函数不是无法找到正确的 maxGrade?
Why my reduce() function is not unable to find out correct maxGrade?
我正在尝试从给定的数字列表中找出正确的最高成绩。
因此,当我使用此 highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
时,该函数将 6
作为 maxGrade
,但它应该是 542
.
请检查代码并说明问题。
function highAndLow(numbers) {
var num = numbers.split(" ");
var maxGrade = num.reduce((accum, currVal) => {
if (accum > currVal) return accum;
return currVal;
});
console.log(maxGrade);
console.log(num);
}
highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
使用最大值函数:
function highAndLow(numbers) {
var num = numbers.split(" ");
var maxGrade = num.reduce((accum, currVal) => Math.max(accum, currVal));
console.log(maxGrade);
console.log(num);
}
highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
您需要先转换为数字。
var num = numbers.split(" ").map(x => Number(x));
当你使用split()
将字符串转换为数组时,你实际上有一个array of strings
您可以使用Array.map(Number)
将字符串转换为数字
字符串值"6"
大于字符串值"542"
function highAndLow(numbers) {
var num = numbers.split(" ").map(Number);
var maxGrade = num.reduce((accum, currVal) => {
if (accum > currVal) return accum;
return currVal;
});
console.log(maxGrade);
console.log(num);
}
highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
您可以拆分字符串并分散值以获得最大值。
Math.max
将参数转换为数字。
function highAndLow(numbers) {
return Math.max(...numbers.split(" "));
}
console.log(highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"));
我正在尝试从给定的数字列表中找出正确的最高成绩。
因此,当我使用此 highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
时,该函数将 6
作为 maxGrade
,但它应该是 542
.
请检查代码并说明问题。
function highAndLow(numbers) {
var num = numbers.split(" ");
var maxGrade = num.reduce((accum, currVal) => {
if (accum > currVal) return accum;
return currVal;
});
console.log(maxGrade);
console.log(num);
}
highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
使用最大值函数:
function highAndLow(numbers) {
var num = numbers.split(" ");
var maxGrade = num.reduce((accum, currVal) => Math.max(accum, currVal));
console.log(maxGrade);
console.log(num);
}
highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
您需要先转换为数字。
var num = numbers.split(" ").map(x => Number(x));
当你使用split()
将字符串转换为数组时,你实际上有一个array of strings
您可以使用Array.map(Number)
将字符串转换为数字
字符串值"6"
大于字符串值"542"
function highAndLow(numbers) {
var num = numbers.split(" ").map(Number);
var maxGrade = num.reduce((accum, currVal) => {
if (accum > currVal) return accum;
return currVal;
});
console.log(maxGrade);
console.log(num);
}
highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6")
您可以拆分字符串并分散值以获得最大值。
Math.max
将参数转换为数字。
function highAndLow(numbers) {
return Math.max(...numbers.split(" "));
}
console.log(highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"));