1

我正在创建一个随机的餐厅生成器。我有一个 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 但它似乎不是一个好的解决方案......

任何帮助都将不胜感激!

4

1 回答 1

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>');

    }
)};
于 2013-11-02T19:22:32.753 回答