如果我创建这样的对象:
var obj = {};
obj.prop1 = "Foo";
obj.prop2 = "Bar";
Run Code Online (Sandbox Code Playgroud)
生成的对象总是这样吗?
{ prop1 : "Foo", prop2 : "Bar" }
Run Code Online (Sandbox Code Playgroud)
也就是说,属性是否与我添加它们的顺序相同?
我有一个非常简单的JSON对象,如下所示:
{
"people":[
{
"f_name":"john",
"l_name":"doe",
"sequence":"0",
"title":"president",
"url":"google.com",
"color":"333333"
},
{
"f_name":"michael",
"l_name":"goodyear",
"sequence":"0",
"title":"general manager",
"url":"google.com",
"color":"333333"
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在,这是从我的服务器端代码返回的,我运行jQuery.each以形成必要的html并输出结果.
现在我正在做的是向包含我的排序信息的服务器发送一个AJAX调用...例如"Title DESC"并重新运行SQL查询以返回新的结果集.但我想避免这种情况,并使用jQuery对生成的JSON进行排序,以防止往返服务器和多个数据库访问.
我怎样才能使用jQuery实现这一目标?
我有一个对象数组,表示页面上 div 元素的位置。数组未排序,我需要对它们进行排序,以便它们按从左到右,然后从上到下的顺序排列。
数组“项目”是:
[{
"id": "Box 2",
"x": 354,
"y": 6
},
{
"id": "Box 3",
"x": 15,
"y": 147
},
{
"id": "Box 1",
"x": 12,
"y": 12
},
{
"id": "Box 4",
"x": 315,
"y": 146
}]
Run Code Online (Sandbox Code Playgroud)
我试过按 x 排序:
items.sort(function(a, b){
if (a.x == b.x) return a.y - b.y;
return a.x - b.x || a.y - b.y;
});
Run Code Online (Sandbox Code Playgroud)
和/或按 y 排序:
items.sort(function(a, b){
if (a.y == b.y) return a.x - b.x;
return a.y - b.y;
}); …Run Code Online (Sandbox Code Playgroud)