1
var tagged={"tagged":[
{"positionX":11,"positionY":13},
{"positionX":12,"positionY":18},
{"positionX":10,"positionY":20}
]};

所以我有这个对象,

我需要重建它,使其最终看起来如下:

var tagged={"tagged":[
{"positionX":10,"positionY":20},
{"positionX":11,"positionY":13},
{"positionX":12,"positionY":18}
]};

按位置 X ASC 排序。

我试过了:

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
        var tagged={"tagged":[
        {"positionX":11,"positionY":13},
        {"positionX":12,"positionY":18},
        {"positionX":10,"positionY":20}
        ]};

        tagged=tagged.tagged;

        var newtagged=new Array();
        for (var i = 0; i < tagged.length; i++) {
        newtagged[i]=tagged[i].positionX;   
        }

        var sorted=newtagged.sort(function(a,b){return a-b});

        $(sorted).each(function(k,v){   
        alert(v);
        });
</script>

确实有一个成功的排序,但新的“排序”数组中的键不正确。

所以我无法根据键的原始读取来检索原始对象中的所有正确值,我的意思是,如果没有排序的原始键,我不知道排序后的“positionX”属于什么,这样我就是无法在标记的数组中检索其对应的位置 Y。.sort(函数(){}); 将新键分配给排序数组。

4

1 回答 1

3

如果我正确理解您的问题,您希望根据 positionX 的值对标记进行排序。如果是这种情况,您可以简单地传递一个函数来比较属性。

var sorted=tagged.sort(function(a,b){return a.positionX-b.positionX});
于 2012-12-12T18:23:32.550 回答