我有一个与此类似的代码(从外部服务渲染信息):
var myList = {'id1' : {prop1:'v1', prop2:'v2'},
'id2' : {prop1:'v3', prop2:'v4'}};
for (var k in myList) {
var html = '<div id="xxx">stuff</div>';
html.data('item', myList[k]);
$('#parentDiv').append(html);
}
由于我不能依赖于使用for (x in y)
时的排序,我想将元素插入特定位置,让我们说按prop1
排序。
那么,如何在prop1
小于插入的实际元素的元素之后更改附加到插入?
答案 0 :(得分:1)
您可能需要先对它们进行排序吗?
tmpList = [] // turn myList to array
tmpList.sort(function (a, b) { return a.prop1 > b.prop1});
// turn tmpList to dict
答案 1 :(得分:1)
如何使用数组:
var myList = {'id1' : {prop1:'v1', prop2:'v2'},
'id2' : {prop1:'v30', prop2:'v4'},
'id3' : {prop1:'v13', prop2:'v4'}},
sorted = [];
for (var k in myList) {
sorted.push(myList[k]);
}
sorted.sort(function (a,b) {
return a.prop1 > b.prop1;
});
for (var i = 0; i < sorted.length; i++) {
var html = '<div id="xxx">stuff</div>';
html.data('item', sorted[i]);
$('#parentDiv').append(html);
}