javascript - 排序对象数组

标签 javascript jquery arrays object object-literal

我有一个像这样的对象字面量数组:

var myArr = [];

myArr[0] = {
   'score': 4,
   'name': 'foo'
}

myArr[1] = {
   'score': 1,
   'name': 'bar'
}

myArr[2] = {
   'score': 3,
   'name': 'foobar'
}

我将如何对数组进行排序,使其按“score”参数递增,从而变为:

myArr[0] = {
   'score': 1,
   'name': 'bar'
}

myArr[1] = {
   'score': 3,
   'name': 'foobar'
}

myArr[2] = {
   'score': 4,
   'name': 'foo'
}

提前致谢。

最佳答案

尝试 myArr.sort(function (a, b) {return a.score - b.score});

数组元素的排序方式取决于传入的函数返回的数字:

  • < 0 (负数):a领先b
  • > 0 (正数):b领先a
  • 0 :在这种情况下,两个数字将在排序列表中相邻。但是排序不保证稳定:a的顺序和 b相对于彼此可能改变。

关于javascript - 排序对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876424/

相关文章:

javascript - 用于检查 JavaScript 语法的 Firefox 附加工具?

javascript - Canvas.toDataURL() 未捕获类型错误 : undefined is not a function

javascript - Tampermonkey:在动态 AJAX 页面上按下按钮时复制源代码

javascript - 使 Bootstrap 折叠动画可选

javascript - 如何从 jQuery 包装集中删除后代元素?

c++ - 我的数组中 Double 之前的主要表达式?

ruby - 如何删除数组哈希中的部分?

javascript - 带有获取实例的 console.log() 在异步函数中停止执行

javascript - 如何在跨度或 div 上显示 SWF?

java - 如何使用scanner函数在java中逐个字符获取并将其存储在二维数组中