0

这是我的json:

{"event": { 
"items": [
            {"position": "2", "name": "John Doe 1"},
            {"position" : "1", "name": "John Doe 2"},
            {"position": "3", "name": "John Does 3"}
            ]
        }

这是我在读取 json 结果后循环遍历结果的方式:

$.each(data.event.items, function(val) {
 $('#list').append('<li>'+data.event.items[val].name+'</li>');
});

现在的顺序是:John Doe 1,John Doe 2,John Doe 3。我想循环它们并按照给定位置的顺序显示它们。所以正确的顺序是 John Doe 2、John Doe 1、John Doe 3。

我怎样才能做到这一点?

4

2 回答 2

6

您可以在构建显示之前对项目进行排序:

data.event.items.sort(function(a,b) {
   return a.position-b.position;        
});

演示(点击“用JS运行”)

请注意,您的问题中没有JSONdata ,它是一个普通的 JavaScript 对象。

于 2013-04-04T07:06:14.550 回答
4

您需要先对项目进行排序:

data.event.items.sort(function(item_a, item_b) {
    return item_a.position - item_b.position;
});
于 2013-04-04T07:06:36.650 回答