javascript - 根据javascript中对象的一个​​属性的值对对象数组进行排序

标签 javascript arrays sorting

<分区>

Possible Duplicate:
Sort JavaScript array of Objects based on one of the object’s properties

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

function building(z)
{
  this.z = z;
}

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

a = new building(5)
b = new building(2)
c = new building(8)

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

buildings = []
buildings.push(a)
buildings.push(b)
buildings.push(c)

问题

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

before -> buildings = [a, b, c] 
sort - > buildings.sort(fu)
after -> buildings = [b, a, c] 

最佳答案

您可以将比较函数传递给 .sort()

function compare(a, b) {
  if (a.z < b.z)
     return -1;
  if (a.z > b.z)
     return 1;
  return 0;
}

然后使用:

myarray.sort(compare)

这里有一些 docs

关于javascript - 根据javascript中对象的一个​​属性的值对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109047/

相关文章:

javascript - 主题标签的正则表达式一开始在 C# 中不起作用,但在 Javascript 中起作用

C数组在堆栈上分配一个额外的指针

VB.Net 使用属性名称对列表进行排序

java - 在 Java 中使用插入排序实现无法正常工作快速排序?

javascript - 在 Store.js 中使用插件 (VeeValidate)

Javascript DOM 操作,每次点击创建一个新的 li 元素

javascript - 循环设置内部 HTML

arrays - g-sorted-ness 不受后面的 h-sorting : is proof correct? 的影响

javascript - Chrome 刷新 "resubmit form data"提交 Null

php从两个数组创建html表,mysql查询产生额外的单元格