...但是当我在控制台中调用该函数时,它返回undefined。我是一个JavaScript新手,所以我可能犯了一个基本的错误,如果有人可以帮助我,我会很高兴: - )。
以下是代码:
var randomPrint = function(){
x = Math.floor(Math.random() * 100);
y = Math.floor(Math.random() * 100);
z = Math.floor(Math.random() * 100);
console.log(x, y, z);
if(x > y && x > z)
{
console.log("The greatest number is" + " " + x);
}
else if(y > z && y > x)
{
console.log("The greatest number is" + " " + y);
}
else if(z > y && z > x)
{
console.log("The greatest number is" + " " + z);
}
};
randomPrint();
答案 0 :(得分:1)
理智的方式:
var nums = [];
for (var i = 0; i < 3; i++) {
nums.push(Math.floor(Math.random() * 100));
}
console.log('Largest number is ' + Math.max.apply(null, nums));
或者:
nums = nums.sort();
console.log('Largest number is ' + nums[nums.length - 1]);
是的,该函数将返回 undefined
,因为您不是从函数返回任何内容。可能没有一个条件匹配,所以你也没有看到任何其他输出。
答案 1 :(得分:1)
试试这个内置方法来获取最大值
Math.max(x,y,z);
答案 2 :(得分:1)
如果你可以扔掉其他两个数字:
for (var i = 0, max = -Infinity; i < 3; ++i) {
max = Math.max(Math.floor(Math.random() * 100), max);
}
alert(max);
答案 3 :(得分:0)
deceze的答案是一个更好的解决方案,但我也看到了你的工作。控制台中的示例输出是:
35 50 47
The greatest number is 50
undefined
未定义的部分是因为该函数没有返回任何内容。你可以把它写成
var randomPrint = function(){
x = Math.floor(Math.random() * 100);
y = Math.floor(Math.random() * 100);
z = Math.floor(Math.random() * 100);
console.log(x, y, z);
if(x > y && x > z) {
var biggest = x;
console.log("The greatest number is" + " " + x);
} else if(y > z && y > x) {
console.log("The greatest number is" + " " + y);
var biggest = y;
} else if(z > y && z > x) {
console.log("The greatest number is" + " " + z);
var biggest = z;
}
return biggest;
};
randomPrint();
答案 4 :(得分:0)
var randomPrint = function(){
x = Math.floor(Math.random() * 100);
y = Math.floor(Math.random() * 100);
z = Math.floor(Math.random() * 100);
console.log(x, y, z);
console.log("this is max " +Math.max(x,y,z);)
}();
你的逻辑也没错。很好,未定义可能会在其他地方出现。
88 36 15 localhost /:16 最大的数字是88
这是我得到的代码的输出。