我有以下内容:
var movie;
var myMovies = ['Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter','Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter','Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter'];
function generateMovies () {
var movie = myMovies[Math.floor(Math.random() * myMovies.length)];
}
function displayMovie() {
generateMovies();
console.log(movie);
$('body').text(movie);
setTimeout(function(){
displayMovie();
},1000);
}
displayMovie();
我想生成一个不同的电影名称并在屏幕上显示它们。似乎是直截了当但显然不是!似乎可变量未定义。
谢谢!
答案 0 :(得分:2)
您正在声明函数内部的变量影片,因此您不会将该值分配给全局变量。
答案 1 :(得分:1)
只需删除var
功能中的generateMovies
。
function generateMovies () {
movie = myMovies[Math.floor(Math.random() * myMovies.length)];
}
基本上,您首先在脚本开头声明movie
,然后再在generateMovies
函数内声明,因此电影不会返回到您的全局范围。
答案 2 :(得分:0)
正如其他人提到的,你有一个范围问题。此外,您并不真正需要全局movie
变量,您可以更改代码以返回预期值,如下所示:
var myMovies = ['Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter','Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter','Bones', 'Psych', 'Big Bang Theory', 'Mad Men',
'Breaking Bad', 'Modern Family', 'Game of Thrones', 'Dexter'];
function generateMovies () {
return myMovies[Math.floor(Math.random() * myMovies.length)];
}
function displayMovie() {
var movie = generateMovies();
console.log(movie);
$('body').text(movie);
setTimeout(function(){
displayMovie();
},1000);
}
displayMovie();
或者,如果您真的不需要console.log
$('body').text(generateMovies())
:library(mlr)
cl = "classif.rpart"
getParamSet(cl)
learner = makeLearner(cl = cl
, predict.type = "prob"
#, predict.type = "response"
, par.vals = list(split="mse")
, fix.factors.prediction = TRUE
)