Javascript If 变量值类型

标签 javascript

我有以下填充元素选项的函数。

player.onTracksChanged_ = function(event) {
  // Update the track lists.
  var lists = {
    video: document.getElementById('videoTracks'),
    audio: document.getElementById('audiotrackButton'),
    text: document.getElementById('captionButton')
  };
  var formatters = {
    video: function(track) {
      return track.width + 'x' + track.height + ', ' +
             track.bandwidth + ' bits/s';
    },
    audio: function(track) {
      return 'language: ' + track.language + ', ' +
         track.bandwidth + ' bits/s';
    },
    text: function(track) {
      return 'language: ' + track.language + ' ' +
         '(' + track.kind + ')';
    }
  };

  // Clear the old track lists.
  Object.keys(lists).forEach(function(type) {
    var list = lists[type];
    while (list.firstChild) {
      list.removeChild(list.firstChild);
    }
  });

  // Populate with the new tracks.
  var tracks = player.getTracks();
  tracks.sort(function(t1, t2) {
    // Sort by language, then by bandwidth.
    if (t1.language) {
      var ret = t1.language.localeCompare(t2.language);
      if (ret) return ret;
    }
    return t1.bandwidth - t2.bandwidth;
  });
  tracks.forEach(function(track) {
    var list = lists[track.type];
    var option = document.createElement('option');
    option.textContent = formatters[track.type](track);
    option.track = track;
    option.value = track.id;
    option.selected = track.active;
    list.appendChild(option);
  });
};

我想要实现的是基于此的 if 语句,它确定“track”的每个“type”的数量是否大于或等于 2,这就是我所得到的:-

            var mediaTracks = player.getTracks();               
            if (mediaTracks.length >= 2) {
                console.log('there are more than 2 tracks');
            } else {
                console.log('there are less than 2 tracks');
            };

事实上我需要做更多类似这样的事情:-

var mediaTracksVideo = player.getTracks(video)
var mediaTracksAudio = player.getTracks(audio)

然后做类似的事情:- if (mediaTracksAudio >= 2) {...

但是当我尝试player.getTracks(audio);控制台记录“音频未定义”。

知道为什么吗?

最佳答案

通过player.getTracks(audio),您使用的是 undefined variable audio。您可能想使用player.getTracks('audio'),其中'audio'是一个字符串。

关于Javascript If 变量值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37921476/

相关文章:

javascript - 到达在 javascript 中动态设置的 URL

javascript - Node js 和 Apache 并行吗?

javascript - d3 中嵌套数据的类型节点错误的参数号

javascript - 如何创建具有最大元素的唯一键数组?

javascript - 将动态生成的表单传递给 Controller

javascript - jQuery 中的 DatePicker 不显示日历

javascript - PhantomJS 创建覆盖的缩略图

php - 动态创建的复选框计算,未正确显示

javascript - 正则表达式拆分 - 一次有效

javascript - 我的 Angular 应用程序仅适用于特定语法