js循环问题

我有一个数组,里面有五个元素,我想每10秒在控件或报表块上展示其中的一个元素,我的这个js哪个地方写错了,求大佬指教

image.png


生产看板test.frm


1310415720 发布于 2019-12-30 11:27 (编辑于 2019-12-30 13:19)
1min目标场景问卷 立即参与
回答问题
悬赏:6 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
shirokoLv6资深互助
发布于2019-12-30 12:59(编辑于 2019-12-30 13:29)

1577683175154102.frm

把报表丢出来我看看


interval里面的自身指向问题

最佳回答
0
yaoxinLv4见习互助
发布于2019-12-30 11:39

    var a = 0;

    setInterval(function() {

      if (a <= arr.length - 1) {

        this.setValue(arr[a]);

        a++;

      }

    }, 10000)


最佳回答
0
杨朝健Lv5中级互助
发布于2019-12-30 11:40(编辑于 2019-12-30 11:45)

var a=0;

setInterval(function(){

    this.setValue(arr[a]);

    a==arr.length-1?a=0:a+=1;

},10000);


  • 1310415720 1310415720(提问者) 没有用,还是不能在页面展示值
    2019-12-30 11:49 
  • 杨朝健 杨朝健 回复 1310415720(提问者) value(\'factory\',1)这个需要放开安全设置,放开了吗
    2019-12-30 11:56 
  • 1310415720 1310415720(提问者) 回复 杨朝健 我alert测试时可以循环取出每个值,就是不能在页面上展示
    2019-12-30 12:02 
最佳回答
0
Wq0706Lv4见习互助
发布于2019-12-30 14:15(编辑于 2019-12-30 14:29)

1577683175154102.frm

当你a的长度走完的时候,你不是应该添加一个else重置为0吗?

var state = this.options.form.getWidgetByName("label0");

var a = 0;

var arr = ["a", "b", "c", "d", "e"];

setInterval(function() {

if (a <= arr.length - 1) {

state.setValue(arr[a]);

a++;

} else {

a = 0;

state.setValue(arr[a]);

}


}, 3000)


最佳回答
0
ajkxLv6见习互助
发布于2019-12-30 14:25

var that = this;

var index = 0;

var totalIndex = arr.length;

setInterval(function(){

that.setValue(arr[index]);

index++;

if(index >= totalIndex ) index = 0;

}, 10000);

这样试试

  • 5关注人数
  • 979浏览人数
  • 最后回答于:2019-12-30 14:29
    请选择关闭问题的原因
    确定 取消
    返回顶部