javascript - 对于in,如何限制输出?

标签 javascript

对于我的 Javascript 类(class),我得到了以下代码:

for (var i in window.navigator)
{ 
    document.getElementById('divResult').innerHTML +=
        i  + ': ' + window.navigator[i] + '<br />';
}
</script>

老师(在线)希望我将结果限制为最多 10 个。

对我来说这是一个很大的难题。从有关 for..in 的其他问题中,我认为知道这是一个可讨论的声明。但如何处理这个问题呢?作为具有 i.length 的数组?

最佳答案

只需设置一个计数器即可。在每次迭代中,您都会增加计数器,当计数器达到 10 时,您只需跳出循环即可

代码:

// Since we're going to access this div multiple times it's best to
// store it outside of the for loop.
var output = document.getElementById('divResult');

var counter = 0;
for (var elem in window.navigator) {
    var value = window.navigator[elem];

    output.innerHTML += counter + ': ' + elem + '=' + value + '<br />';

    ++counter;
    if (counter == 10) {
        break;
    }
}

由于您是 JavaScript 新手,我想解释一下 for-in

如果您想从数组中获取特定值,您可以通过索引访问它的元素。例如:

var myArray = [7, 5, 6, 6];
for (var i = 0; i < myArray.length; ++i) {
    var value = myArray[i];
}

但是现在您想要循环遍历 window.navigator 并且该元素不是数组而是对象。由于对象是键值对的,因此它没有索引。那么如何循环它呢?

让我们想象 window.navigator 看起来像这样:

var navigator = {
    myBrowser: 'Google Chrome',
    myOtherProperty: 'otherValue',
    AnotherProperty: 'anotherValue'
};

如果我们想从我们使用的对象中获取第一个元素

navigator.myBrowser

navigator['myBrowser'];

现在我们要循环遍历对象中的所有元素。由于普通的 for 循环使用索引,而对象没有索引,因此我们使用 for in 循环。该循环遍历对象的所有属性并为我们提供 key 。

for (var key in navigator) {
    // Here we access a property in our object by the key given by our for loop.
    var value = navigator[key];
}

因此,第一次迭代我们的键是 myBrowser ,值是 Google Chrome 下一次迭代的键是 myOtherProperty ,值是 otherValue

使用 hasOwnProperty 通常是个好主意如果您正在循环访问一个对象:

for (var key in navigator) {
    if (navigator.hasOwnProperty(key) {
        var value = navigator[key];
    }
}

希望这有帮助

关于javascript - 对于in,如何限制输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36969527/

相关文章:

javascript - 在 html 中创建 javascript 循环

javascript - JSlint Jquery 错误 - 预期 }

javascript - 输入类型 =“number” 忽略 Maxlength 和 Minlength

javascript - 解析 'background-position' 值时出错

javascript - 对 JQuery 执行刷新以刷新选择器

javascript - 在 jQuery 插件设置中使用特殊字符?

javascript - Android网页中的链接变蓝

javascript - javascript中的递归函数使用笔迹库返回所选节点的父节点

javascript - select2从本地json文件加载数据

javascript - 你的 JavaScript 工具链中有什么?