基于javascript中对象的一个​​属性的值对对象数组进行排序

Jam*_*ron 1 javascript arrays sorting

可能重复:
根据对象的某个属性对对象的JavaScript数组进行排序

我有一个对象有一个名为z的属性:

function building(z)
{
  this.z = z;
}
Run Code Online (Sandbox Code Playgroud)

假设我创建了这个对象的3个实例:

a = new building(5)
b = new building(2)
c = new building(8)
Run Code Online (Sandbox Code Playgroud)

然后将这些实例放入数组中

buildings = []
buildings.push(a)
buildings.push(b)
buildings.push(c)
Run Code Online (Sandbox Code Playgroud)

问题

如何根据它包含的对象的z属性对ASCENDING ORDER中的数组进行排序?排序后的最终结果应该是:

before -> buildings = [a, b, c] 
sort - > buildings.sort(fu)
after -> buildings = [b, a, c] 
Run Code Online (Sandbox Code Playgroud)

lrs*_*jng 5

你可以传递一个比较函数 .sort()

function compare(a, b) {
  if (a.z < b.z)
     return -1;
  if (a.z > b.z)
     return 1;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后使用:

myarray.sort(compare)
Run Code Online (Sandbox Code Playgroud)

这里有一些文档