【问题标题】:javascript: get object item in real order [duplicate]javascript:按实际顺序获取对象项[重复]
【发布时间】:2013-12-22 03:15:21
【问题描述】:

我需要得到简单 javascript 的真正顺序,但我从这段代码中得到了不正确的答案:

var Obj={"x":"z", "2":"a", "1":"b"};
for(i in Obj)
    document.write(Obj[i]+"<br>");

我希望看到zab 作为答案,但我得到了baz
查看实际代码: http://jsfiddle.net/gpP7m/

【问题讨论】:

    标签: javascript object


    【解决方案1】:

    也检查以下示例

    var data1 = {"x":"z", "2":"a", "1":"b"};
    var arr = [];
    var i=0;
    $.each(data1,function(index,value) {
       arr[i++] = value;
    });
    var len = arr.length-1;
    
    while( len>=0 ) {
       if( arr[len] !== undefined ) {
          alert(arr[len]);
       }
       len--; 
    }
    

    参考链接是Reverse object in jQuery.each

    小提琴更新http://jsfiddle.net/gpP7m/3/

    【讨论】:

      【解决方案2】:

      There's no guaranteed order in object keys iteration.

      for...in 循环遍历一个对象的属性 任意顺序

      如果需要,请使用键/值元素数组:

      var obj=[
         {key:"x", value:"z"},
         {key:"2", value:"a"}
      ];
      
      for (var i=0; i<obj.length; i++) document.write(obj[i].value+'<br>');
      

      在现代浏览器(不是 IE8)上,您可以这样做:

      document.write(obj.map(function(kv){ return kv.value }).join('<br>'));
      

      (不完全一样,但可能做你想要的)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 2020-09-30
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多