簡體   English   中英

在.slice之后重置JSON數組

[英]Reset a JSON array after .slice

我正在創建餐廳的隨機生成器。 我有一個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的函數中,但這似乎不是一個好的解決方案...

任何幫助,我們將不勝感激!

您應該每次都克隆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>');

    }
)};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM