javascript - 检查[i]是否存在

标签 javascript

我正在尝试运行一个脚本,如果 i 存在(意味着存在 i 值,任何值)或其他部分,我希望运行其中的一部分如果i没有值就运行,有人可以启发我吗?

我说的是 for 循环,比如

for (var i=0; i<data.length; i++) {
    if (var i == doesnt exist) {
        code1 runs
    }
    else {
        code2 runs
    }
}

这是 HTML 中的代码

<script>
function funfacts(o){
    var facts = document.getElementById('funfacts');
    var data = o.query.results.a;
    for(var i=0;i<data.length;i++){
        var out = document.createElement('a');
        facts.appendChild(out);
        out.href = data[i].href;
        out.innerHTML = data[i].alt;
        out.appendChild(document.createElement('br'));
    }
}
</script>

最佳答案

for(var i=0;i<data.length;i++){
  if(data[i]){
    code1 runs
  } else {
    code2 runs
  }
}

这假设您正在迭代一个数组,并且该数组中的某些对象为 null。否则,此循环将永远不会运行到最后一个数组索引,因此无需保护它,除非数组中确实有 null

请注意,这也会因零而失败,因为在 JavaScript 中零被视为 false。如果您的情况存在问题,您可以将其与 null

进行比较
if (data[i] !== null) {

在循环之外,您可以通过以下方式检查数组是否在索引处具有值:

if (typeof(data[i]) === 'undefined') {

这将查看该索引处是否有值,可能为 false、零、null 或其他任何值,并且此测试将通过。

但是,在该循环内,它保证位于数组范围内。

关于javascript - 检查[i]是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4407460/

相关文章:

javascript - 为什么第二次点击功能不起作用?

javascript - 在 Word 2010 中使用 Office.js

javascript - 通过循环将列转置为行

javascript - OrthographicCamera 无法渲染整个场景

javascript - 在 JavaScript 中测量文本大小

javascript - 将元素中的 CSS 与页面的其余部分隔离

javascript - AngularUI 路由器 - 实现 "multiple simultaneous states"的最佳方法是什么?

javascript - 在javascript中将数组(对象?)转换为字符串

javascript - 在 jQuery 中将 JSON 数组转换为 HTML 表

javascript - 了解 Express.js 中间件优先级