for-in遍历

Posted 麦兜家园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了for-in遍历相关的知识,希望对你有一定的参考价值。

关于for-in格式如下:

for (变量 in 对象)
{
    在此执行代码
}

for-in可以遍历json的操作:for-in就是挨个找到json对象里面的属性名称,属性值;

<script>
    window.onload=function(){
        var json={name:\'Juce\',age:\'23\'};
         for(var attr in json){
            alert(json[attr])//返回的是Juce,23
         }
    }
</script>

for-in也可以遍历数组:

<script>
    window.onload=function(){
        var json1={
            name:[\'juce\',\'lulu\',\'nana\'],
            age:[\'23\',\'18\',\'20\']
        };
        for(var attr in json1){
            for(var i=0;i<json1[attr].length;i++){
                alert(json1[attr][i]);
            }
        }
    }
</script>

对于数组来说的for循环格式不能遍历json,而for-in即可以遍历json也可以遍历数组!

有几点提醒一下大家:

注意一:for in循环不会按照属性的下标来排列输出。

<script>
    window.onload=function(){
        var json2 = {
            \'4\': \'first\',
            \'3\': \'second\',
            \'2\': \'third\',
            \'1\': \'fourth\'
        };
        for (var i in json2) {
            console.log(i + "  " + json2[i])
        }
    }
</script>

 输出结果如下:

<script>
    window.onload=function(){
        var json3={
            "first":"first",
            "family":"5",
            "2":"2",
            "34":"34",
            "1":"1",
            "number":"4"
        };
        for (var i in json3) {
            console.log(i + "  " + json3[i])
        }
    }
</script> 

 输出结果是:

注意二:建议尽量不要对数组执行for in循环。

事实上,在高性能javascript这本书中,也强调了for in循环的不好,因为它总是会访问该对象的原型,看下原型上是否有属性,这在无意中就给遍历增加了额外的压力。

好了,以上纯属个人的一点点小建议!希望有益于大家!

以上是关于for-in遍历的主要内容,如果未能解决你的问题,请参考以下文章

json 只能用 for-in 遍历

python 循环结构(for-in)

为什么不让你使用for-in去遍历数组

for-in和for-of,forEach和Map

深入理解枚举属性与for-in和for-of

JavaScript中的遍历