我正在创建一个随机的餐馆发电机。我有一个PHP请求获取我的数据库中的位置然后我转换为json数组中的位置。
然后我有一个jquery函数随机显示带有.slice的餐馆,以删除我刚刚拥有的地方。
$(document).ready(function() {
// The "restos" var equals to my full json
var restos = <? echo $restos; ?>;
function getRandomResto(){
var randomKey = Math.floor(Math.random()*restos.length);
var resto = restos[randomKey];
restos.splice(randomKey, 1);
var title = resto.title;
//Add content
$('#place').html('<h2>' + title + '</h2>');
}
)};
这是简短版本。
我想要做的是,当我的数组为空时,重新加载它以重新启动我餐厅的随机显示。
我试图再次调用我的json var,但是在restos.length等于0的函数中,但它似乎不是一个好的解决方案......
真的很感激任何帮助!
答案 0 :(得分:0)
你应该每次克隆restos,如下所示:
var restos = <? echo $restos; ?>;
var currentRestos = restos.slice(0); // this clones an array
function getRandomResto(){
if (currentRestos.length == 0) {
currentRestos = restos.slice(0);
}
var randomKey = Math.floor(Math.random()*currentRestos.length);
var resto = currentRestos[randomKey];
currentRestos.splice(randomKey, 1);
var title = resto.title;
//Add content
$('#place').html('<h2>' + title + '</h2>');
}
)};