Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在.slice之后重置JSON数组_Javascript_Php_Jquery_Arrays_Json - Fatal编程技术网

Javascript 在.slice之后重置JSON数组

Javascript 在.slice之后重置JSON数组,javascript,php,jquery,arrays,json,Javascript,Php,Jquery,Arrays,Json,我正在创建一个餐厅的随机生成器。我有一个PHP请求,它获取数据库中的位置,然后将这些位置转换为json数组 然后我有一个jquery函数来随机显示带有.slice的餐厅,以删除我刚去过的地方 $(document).ready(function() { // The "restos" var equals to my full json var restos = <? echo $restos; ?>; function getRandomResto

我正在创建一个餐厅的随机生成器。我有一个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>');

    }
)};
$(文档).ready(函数(){
//“restos”var等于我的完整json
var restos=;
函数getRandomResto(){
var randomKey=Math.floor(Math.random()*restos.length);
var resto=restos[randomKey];
剩余拼接(随机键,1);
var title=resto.title;
//添加内容
$('#place').html(''+title+'');
}
)};
这是简短的版本

我想做的是,当我的数组为空时,重新加载它以重新启动餐厅的随机显示。

我试图再次调用我的json变量,但在restos.length等于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>');

    }
)};
var restos=;
var currentRestos=restos.slice(0);//这将克隆一个数组
函数getRandomResto(){
如果(currentRestos.length==0){
currentRestos=restos.slice(0);
}
var randomKey=Math.floor(Math.random()*currentRestos.length);
var resto=currentRestos[randomKey];
currentRestos.拼接(随机键,1);
var title=resto.title;
//添加内容
$('#place').html(''+title+'');
}
)};

lenghth()vs length()和
length()
vs
length
-属性要添加到@AllInOne所说的内容中,
length
是一个属性,不是一个方法,所以不需要括号。@WojciechFrącz不推荐w3schools.com作为参考。它充满了错误,看。真是个好主意,我没想到。它就像一个符咒!