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}
]};
按positionX 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”的那个,那个我无法在数组标记中检索其对应的positionY。的.sort(函数(){});将新键分配给已排序的数组。
答案 0 :(得分:3)
如果我正确理解您的问题,您希望根据positionX的值对其进行排序。如果是这种情况,您可以简单地将函数传递给比较属性的排序。
var sorted=tagged.sort(function(a,b){return a.positionX-b.positionX});