js for in 循环 键名一样只循环出一条 怎么循环出所有

JavaScript014

js for in 循环 键名一样只循环出一条 怎么循环出所有,第1张

“键名一样”这本身是违背了对象(或者关联数组)的基本原则的,键名其实就是对象的属性名,打个比方,你是一个对象,那么你的身高就是这个对象的一个属性,而你的身高是只有一个的,不可能出现“身高既是187又是168”的情况,所以同一个对象中是不允许出现名称相同的两个或两个以上的属性的。回到你这个问题,由于data中存在3个键名都是00123的键,那么只有最后一个键有效(这点可能与大家的习惯想法不一致),前面的都会被忽略!

所以你这题按照常规的、合理的方法是不可能实现的,只能走歪门邪道了,比如字符串分割……

这种可以,比如下面的情况,不知道是不是你想要的结果

<script type="text/javascript">

    var data = {'name': '张三', 'sex': 1, 'age':18}

    //实际使用过程中可能是函数调用data直接参数给过来,所以得判断下

    if(data != null) { 

        var str = ""

        for(var k in data) {

            var v = data[k]

            if(k == 'sex') {

                v = (v == 1) ? "男" : "女"

            }

            str += k +" : " + v + "\n"

        }

        alert(str)

    }

</script>