如何通过javascript中包含的对象的属性值来对关联对象进行排序

时间:2011-08-26 18:28:02

标签: javascript sql-order-by associative-array

例如,对于此关联对象:

a["id1"] = { Id: "id1", Count: 15, Other: "aaa"};
a["id2"] = { Id: "id2", Count: 5, Other: "bbb" }; 

我喜欢这个阵列:

b[0] = { Id: "id2", Count: 5, Other: "bbb" };
b[1] = { Id: "id1", Count: 15, Other: "aaa"};

提前,

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

var b = [];
for(x in a)
    b.push(a[x]);

如果您希望以后必须对数组进行排序,则无法保证数组中元素的顺序。如果你也需要帮助,请告诉我。

答案 1 :(得分:1)

使用for in循环将对象收集到一个数组中,以便可以对它们进行排序。

var data = [];
for(var name in object) {
  if (object.hasOwnProperty(name)) {
    data.push ( name );
  }
}

然后使用Javascript内置的数组排序方法,传递一个函数来比较数组中的对象。

//I assume you are sorting on Count
data.sort(function (a,b) { return a.Count - b.Count });