Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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_Json - Fatal编程技术网

循环遍历JavaScript对象并在每次迭代中更改表内容

循环遍历JavaScript对象并在每次迭代中更改表内容,javascript,json,Javascript,Json,我需要用json数据构建一个表或面板/卡 我想打印第一张,然后删除所有内容并打印下一张 我试过桌子和面板,但都没用 我想做一些类似下图的事情 这是密码 const js=[{ “类别”:“APIO”, “服务二级”:“CTB-可控制数据”, “serviceFirstLevel”:“Contabilidade”, “状态”:“Novo”, “createdDate”:“2019-04-17T12:47:51.0299221”, “所有者团队”:“管理者团队”, “id”:13062, “cu

我需要用json数据构建一个表或面板/卡

我想打印第一张,然后删除所有内容并打印下一张

我试过桌子和面板,但都没用

我想做一些类似下图的事情

这是密码

const js=[{
“类别”:“APIO”,
“服务二级”:“CTB-可控制数据”,
“serviceFirstLevel”:“Contabilidade”,
“状态”:“Novo”,
“createdDate”:“2019-04-17T12:47:51.0299221”,
“所有者团队”:“管理者团队”,
“id”:13062,
“customFieldValues”:[{
“项目”:[{
“customFieldItem”:“Crítica”
}],
“customFieldId”:18289,
“customFieldRuleId”:8423,
"线":一,,
“值”:空
}],
“客户”:[{
“商业名称”:“Usuario”
}]
}, {
“类别”:“APIO”,
“serviceSecondLevel”:空,
“serviceFirstLevel”:“行政管理”,
“状态”:“Novo”,
“createdDate”:“2019-04-17T14:35:50.6543365”,
“所有者团队”:“管理者团队”,
“id”:13133,
“customFieldValues”:[{
“项目”:[{
“customFieldItem”:“Baixa”
}],
“customFieldId”:18289,
“customFieldRuleId”:8423,
"线":一,,
“值”:空
}],
“客户”:[{
“商业名称”:“Usuario”
}]
}];
js.forEach(函数(o){
var area=o.serviceSecondLevel==null?o.serviceFirstLevel:o.serviceSecondLevel;
$('面积')。文本(面积);
$('#numero').text(o.id);
$('#requestante').text(o.clients[0].businessName);
$(#categoria')。文本(o.category);
$(#status')。文本(o.status);
$('severidade').text(o.customFieldValues[0].items[0].customFieldItem);
$(“#数据”).text(o.createdDate);
$('#hora').text(o.createdDate);
睡眠(30);
});

根据您的评论,我知道您希望等待30秒并覆盖表中显示的对象。您可以使用或来执行此操作

我已经更新了您的代码片段,以展示如何使用
setInterval
。基本上,跟踪要显示的数组的下一个索引
setInterval
提供了一个函数,它在延迟后重复调用该函数。此函数用于增加索引并更新div

在本例中,div每1秒(1000毫秒)更新一次。如果要延迟30秒,请将间隔乘以30:

const js=[{
“类别”:“APIO”,
“服务二级”:“CTB-可控制数据”,
“serviceFirstLevel”:“Contabilidade”,
“状态”:“Novo”,
“createdDate”:“2019-04-17T12:47:51.0299221”,
“所有者团队”:“管理者团队”,
“id”:13062,
“customFieldValues”:[{
“项目”:[{
“customFieldItem”:“Crítica”
}],
“customFieldId”:18289,
“customFieldRuleId”:8423,
"线":一,,
“值”:空
}],
“客户”:[{
“商业名称”:“Usuario”
}]
}, {
“类别”:“APIO”,
“serviceSecondLevel”:空,
“serviceFirstLevel”:“行政管理”,
“状态”:“Novo”,
“createdDate”:“2019-04-17T14:35:50.6543365”,
“所有者团队”:“管理者团队”,
“id”:13133,
“customFieldValues”:[{
“项目”:[{
“customFieldItem”:“Baixa”
}],
“customFieldId”:18289,
“customFieldRuleId”:8423,
"线":一,,
“值”:空
}],
“客户”:[{
“商业名称”:“Usuario”
}]
}];
var-idx=0;
setInterval(函数(){
var o=js[idx++%js.length];
var area=o.serviceSecondLevel==null?o.serviceFirstLevel:o.serviceSecondLevel;
$('面积')。文本(面积);
$('#numero').text(o.id);
$('#requestante').text(o.clients[0].businessName);
$(#categoria')。文本(o.category);
$(#status')。文本(o.status);
$('severidade').text(o.customFieldValues[0].items[0].customFieldItem);
$(“#数据”).text(o.createdDate);
$('#hora').text(o.createdDate);
}, 1000);


Jean,我已经编辑了您的问题,并将您的代码片段合并为一个可运行的片段。如果这不能准确地反映您的问题,请随时恢复我的编辑。也就是说,您的代码在每个循环中不断覆盖相同元素的文本-最终输出将始终是数组中的最后一项。你能解释一下电流输出与你期望的输出有什么不同吗?如果您希望为每组数据创建单独的块,请创建新元素并将它们附加到页面,而不是不断更新相同的、预先存在的元素。感谢您的编辑。我想在打印下一个对象之前等待30秒。我已经使用了sleep函数()。我只是忘了把它贴在柱子上。但是我只能看到一个对象,第二个对象没有被打印。如果你看到,你会在代码下面看到一个链接,上面写着“编辑这个片段”。从那里,您可以添加
sleep()
函数来更准确地表示您的用例。不过,为了演示的缘故,不要用30秒——假设只有2秒或3秒会导致相同的行为。(如果没有,也许30秒是相关的,但2秒是一个起点。)哪部分不起作用?@JeanLima如果这是您的实际代码,问题很简单:
sleep()
不是JavaScript中的函数。您的代码更新元素,到达显示
sleep()
的行,并抛出异常,从而停止执行。如果要实现睡眠功能,请参阅。这就是说,我不确定我会走这条路——在一条线上保持30秒似乎是复制现有功能的粗略方法。递归的
setTimeout()
,或
setInterval()
,可能更合适。谢谢,它成功了。我是JS的新手,正在为一些基本的事情而挣扎