【发布时间】:2019-07-30 21:07:42
【问题描述】:
上下文:我正在根据w3schools.com 中的教程使用 cookie。这个想法是设置最多 10 个由用户输入的搜索查询给出的 cookie(也就是说,只应存储最后 10 个条目)。
我有一个函数可以为 10 个 cookie 中的每一个生成一个名称(“Search_Entry”+i)。在第 11 个条目之前一切正常,我希望该函数再次返回第一个可能的名称,然后返回第二个、第三个等,因此,以这种方式,已经存储在这些名称下的值将简单地替换为新的一。在某种程度上,我希望循环以某种方式重新启动,尽管这似乎不是一个简单的选择。
var g_iMaxSearchQueries = 10;
function dynamicCookieName() {
var l_aCurrentCookie;
for (var i = 0; i < g_iMaxSearchQueries; i++) {
l_aCurrentCookie = getCookie("Search_Entry"+i);
if(l_aCurrentCookie == "" && i < g_iMaxSearchQueries) {
return "Search_Entry"+i;
} else if (i == 9) { //this “else” needs to be an “else if” in order for the condition to work properly. Maybe is (i == 9) not the right one but the only one that worked for me from what I’ve tried.
//here would the loop start running again exactly like in the first part.
}
}
}
据我所知,我到处搜索,并尝试了几种不同的东西,还有更复杂的潜在解决方案,但基本问题仍然相同,这就是为什么我的问题和我发布的代码版本指的是核心我需要的。也许有更多知识和经验的人可以对此有所了解。提前非常感谢!
【问题讨论】:
-
i%g_iMaxSearchQueries? -
&& i < g_iMaxSearchQueries在当前的 for 循环中是多余的 -
@depperm 感谢您的 cmets,但我不确定您的建议有何想法 (i%g_iMaxSearchQueries)。
-
您当前的功能(对我来说没有看到上下文)没有意义。但是
i%g_iMaxSearchQueries将确保您永远不会超过最大 cookie。如果i是 12 将导致 2
标签: javascript loops cookies