javascript - 如何在 while 循环中仅显示一次文本?

标签 javascript jquery api vimeo

我正在尝试显示 JavaScript 对象的“文本”属性,以便在到达其时间码属性时在控制台中显示。 “时间码”属性与 Vimeo 播放器中的已用时间进行比较。这很好,我遇到的问题是由于 Vimeo API 每秒返回多个毫秒数据“点击”,因此我看到我的文本在控制台中多次弹出。

任何人都可以建议如何将每个文本属性显示一次,并且仅显示一次吗?

notes_ex = [
  {
    timecode: 2,
    text: 'Hi there!'
  },
  {
    timecode: 7,
    text: 'Hi again!'
  }
];

function ready(player_id) {
  var player = $f(player_id);

  player.addEvent('ready', function() {
      console.log('ready');
      player.addEvent('playProgress', onPlayProgress);
  });

  function onPlayProgress(data, id) {
    timeElapsed = Math.floor(data.seconds);
    console.log('timeElapsed:' + timeElapsed);

    while (timeElapsed++) {
      for (var i = 0; i < notes_ex.length; i++) {
        timecode = notes_ex[i].timecode;
        if (timecode === timeElapsed) {
          console.log(notes_ex[i].text);
        }
      }
      break;
    }
  } 

最佳答案

您是否可以分配第二个变量来表示它何时被触发?所以像这样:

var z = 0;

if (timecode === timeElapsed && z == 0) {
  console.log(notes_ex[i].text);
  z++;
}

有点不完整,但你明白了原理......

关于javascript - 如何在 while 循环中仅显示一次文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534288/

相关文章:

javascript - 如何一次定义很多变量

java - 手机缝隙相机 - 有更强大的选择吗?

作为数组和字典的对象的 JavaScript 排序运行时

javascript - 单击选项卡时如何调用函数?

javascript - 使用 Titanium,删除当前 View 或弹出当前 View

javascript - Onclick 无法使用 Bootstrap 工作

javascript - 移动设备上的 jquery 事件处理程序 - 模仿绘图 Action

mysql - 在 CGP 数据库上使用 asp.net REST API(API 位于 GCP 上)时,GCP(Google Cloud Platform)的连接字符串是什么?

iphone - 用于 iOS 应用程序的预测字典文本输入 API/框架

java - 在 Spring Controller 中返回原始类型/包装器的最佳方法是什么?