重新排序对象数组中的对象

时间:2014-03-19 21:10:10

标签: javascript jquery

我有一个类似的json对象:

{
    posts: [
        {id: 56, title: 'something', date: '10-10-10 00:00:00'},
        {id: 57, title: 'Apples', date: '10-10-16 00:00:00'},
    ]
}

我正在尝试学习如何在Javascript中操作数据结构。我想使用jquery根据posts属性重新排序这些属性,因此您可以根据日期,标题或ID重新排序(默认为id)。

如何成为新手,我不知道从哪里开始我已经看到了这个answer而我不认为它是我想去的方向。

结果输出是否在同一个结构中?如何基于这种“重新排序”创建模型集合。

这个想法是允许在集合中编辑和发布一个模型,基于用于重新排序或“排序”集合的属性,从而允许更快的处理 - 所以我不必总是通过当我真的只想更新集合中的一个模型时,整个集合到服务器。

1 个答案:

答案 0 :(得分:0)

查看JavaScript array.sort方法。它可能会做你想要的。

var posts = [{"id": 57, "title": "something"}, {"id": 56, "title": "something else"}];
posts.sort(function(a, b) { if (a.id < b.id) { return -1; } else { return 1; } });
for (var i=0; i<posts.length-1; i++) {
    console.log(posts[i].title);
}
// prints "something else" followed by "something"

sort方法接受一个传递两个元素ab的函数,如果a小于b则返回-1,如果它们相等则返回0,如果a大于b,则为1。

请注意,如果您描述的JSON存储在posts,我上面的o.posts变量只是o的简化版本。另请注意sort排序,这意味着它将更改其操作的数组。