以下代码有效:
var myArray = [];
function myFunc(){
var randomNumber = Math.floor(Math.random() * 4);
if(myArray.indexOf(randomNumber) == -1){
myArray.push(randomNumber);
console.log(randomNumber); //; didn't use return
} else {
myFunc();
}
}
for(let i=0; i<4; i++){
myFunc();
}
虽然以下情况并非如此,但两者几乎相同,只是以下是使用“return”。
var myArray = [];
function myFunc(){
var randomNumber = Math.floor(Math.random() * 4);
if(myArray.indexOf(randomNumber) == -1){
myArray.push(randomNumber);
return randomNumber; // using return
} else {
myFunc();
}
}
for(let i=0; i<4; i++){
console.log(myFunc());
}
结果可能与随机数不一样,请尝试多次刷新。
我想使用return,以便值可以保存到函数中。
谢谢大家。
答案 0 :(得分:2)
它会返回undefined
,因为您在myArray.indexOf(randomNumber) != -1
时没有返回任何内容。尝试:
function myFunc(){
var randomNumber = Math.floor(Math.random() * 4);
if(myArray.indexOf(randomNumber) == -1){
myArray.push(randomNumber);
return randomNumber; // using return
} else {
return myFunc();
}
}