Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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 非顺序迭代数组_Javascript_Arrays - Fatal编程技术网

Javascript 非顺序迭代数组

Javascript 非顺序迭代数组,javascript,arrays,Javascript,Arrays,我正在处理一组对象(tweet),我只想在每次页面加载时迭代一定数量的对象。停止迭代的最后一次计数将被保存并在下一次页面加载时再次开始。这就是我被困的地方 var obj1 = [{ "name": "trai" }, { "name": "beth" }, { "name": "taylor" }, { "name": "trace" }, { "name": "dad" }, { "name": "elaine" }]; var i = 5; //last ind

我正在处理一组对象(tweet),我只想在每次页面加载时迭代一定数量的对象。停止迭代的最后一次计数将被保存并在下一次页面加载时再次开始。这就是我被困的地方

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++;}
}
var obj1=[{
“名称”:“trai”
}, {
“姓名”:“贝丝”
}, {
“姓名”:“泰勒”
}, {
“名称”:“跟踪”
}, {
“姓名”:“爸爸”
}, {
“姓名”:“伊莱恩”
}];
var i=5//最后一个索引。将在浏览器存储中更新和检索
var-num=2//要迭代的数字
对于(变量计数=0;计数=obj1.长度){
i=0;
}
else{i++;}
}

为什么不相应地设置开始索引

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;
}
for(var count=i;(count=obj1.length){
i=0;
}否则{
i+=num;
}

在每一页上,您都需要将结束计数器存储在localStorage中。在每个页面上,您都需要检查localStorage中的计数器是否已经存在有效值。如果没有,您可以假设这是第一次,从0开始(或您喜欢的任何值)

var obj1=[{
“名称”:“trai”
}, {
“姓名”:“贝丝”
}, {
“姓名”:“泰勒”
}, {
“名称”:“跟踪”
}, {
“姓名”:“爸爸”
}, {
“姓名”:“伊莱恩”
}];
var i=0//最后一个索引。将在浏览器存储中更新和检索
if(localStorage.getItem(“lastCounter”)的类型!=“未定义”)
{
i=parseInt(localStorage.getItem(“lastCounter”)|0;
}
var-num=2//要迭代的数字
对于(变量计数=0;计数=obj1.长度){
i=0;
}
else{i++;}
}
setItem(“lastCounter”,i);

我在确定obj1时犯了一个错误。长度被计算在内。我想如果你从零开始计数,长度是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++;}
}
var obj1=[{
“名称”:“trai”
}, {
“姓名”:“贝丝”
}, {
“姓名”:“泰勒”
}, {
“名称”:“跟踪”
}, {
“姓名”:“爸爸”
}, {
“姓名”:“伊莱恩”
}];
var i=5//最后一个索引。将在浏览器存储中更新和检索
var-num=2//要迭代的数字
var lngth=obj1.length-1//这里的长度是多少
对于(变量计数=0;计数
结果:
依莲

trai

从你的问题中不清楚你在解决问题的哪个方面有困难。正在发生的事情与您预期/希望发生的事情不符?@Jamiec不是另一种技术。只要本地存储。如果我保存它们并从会话中设置它们,它们就会这样做storage@Jamiec-代码中的注释表示OP将
i
持久化在浏览器存储(可能是本地存储)中,因此这在这里不应该是一个问题。@RJM似乎我陷入了一个循环中…使用JSFIDLE进行测试。我在本地试试。
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++;}
}