在 .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>');
}
)};
相关文章:
- 需要帮助设置json数组
- 如何使用 node.js 比较两个 json 数组
- 根据id将json数组组合为一个json数组
- 如何创建JSON数组
- 如何将package.json数组传递给grunt.js
- 访问json数组中的对象
- JSON数组数据返回Undefined
- 如何向JSON数组动态添加属性
- 如何从json数组中获取特定值
- 从多维嵌套json数组创建下拉列表
- 在ListView中添加JSON数组中存储的图像-ReactNative
- jquery在json数组中循环
- 将 JSON 数组解析为 JavaScript 数组
- 如何在php中读取没有任何键的JSON数组
- 如何在Jquery中迭代JSON数组
- 如何在cycle js中从JSON数组创建组件
- 如何使用jquery返回php-json数组对象
- JSON数组转换为JS对象数组
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- 使用Underscore.js修改json数组中所选元素的更有效方法