我正在使用一组对象(推文),我只想在每个页面加载上迭代一定数量的这些对象。最后一次计数停止迭代的位置将保存并在下一页加载时再次启动。这就是我被困住的地方。
var obj1 = [{
"name": "trai"
}, {
"name": "beth"
}, {
"name": "taylor"
}, {
"name": "trace"
}, {
"name": "dad"
}, {
"name": "elaine"
}];
var i = 5; //last index. will be updated and retrieved in browser storage
var num = 2; //number to iterate
for (var count = 0; count < num; count++) {
$('body').append('<div>' + obj1[i].name + '</div>');
if (i >= obj1.length) {
i = 0;
}
else {i++;}
}
答案 0 :(得分:0)
为什么不相应地设置起始索引?
for (var count = i; (count < i + num) && (count < obj1.length); count++) {
$('body').append('<div>' + obj1[count].name + '</div>');
}
if(i + num >= obj1.length) {
i = 0;
} else {
i += num;
}
答案 1 :(得分:0)
在每个页面上,您需要将结束计数器存储在localStorage中。在每个页面上,您需要检查localStorage中的计数器是否已存在有效值。如果没有,你可以假设这是第一次,从0(或你喜欢的任何地方)开始。
var obj1 = [{
"name": "trai"
}, {
"name": "beth"
}, {
"name": "taylor"
}, {
"name": "trace"
}, {
"name": "dad"
}, {
"name": "elaine"
}];
var i = 0; //last index. will be updated and retrieved in browser storage
if( typeof localStorage.getItem("lastCounter") != "undefined" )
{
i = parseInt( localStorage.getItem("lastCounter") ) || 0;
}
var num = 2; //number to iterate
for (var count = 0; count < num; count++) {
$('body').append('<div>' + obj1[i].name + '</div>');
if (i >= obj1.length) {
i = 0;
}
else {i++;}
}
localStorage.setItem("lastCounter", i );
答案 2 :(得分:0)
我在确定obj1.length的计数方面犯了一个错误。我想如果你从零开始计算长度将是5,但长度是6.通过考虑对象的正确长度来修正它。
var obj1 = [{
"name": "trai"
}, {
"name": "beth"
}, {
"name": "taylor"
}, {
"name": "trace"
}, {
"name": "dad"
}, {
"name": "elaine"
}];
var i = 5; //last index. will be updated and retrieved in browser storage
var num = 2; //number to iterate
var lngth = obj1.length -1; //accounted for length here
for (var count = 0; count < num; count++) {
$('body').append('<div>' + obj1[i].name + '</div>');
if (i == lngth) {
i = 0;
}
else {i++;}
}
结果:
伊莱恩
TRAI