Javascript 对对象数组进行排序

Javascript 对对象数组进行排序,javascript,jquery,arrays,object,object-literal,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'

我有一个对象文本数组,如下所示:

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(函数(a,b){返回a.score-b.score})

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

  • <0
    (负数):
    a
    位于
    b
  • >0
    (正数):
    b
    位于
    a
  • 0
    :在这种情况下,两个数字将在排序列表中相邻。但是,排序不能保证稳定:相对于彼此的
    a
    b
    顺序可能会改变
您可以查看MDN上的。特别是在有关提供自定义比较功能的文档中
const myArray=[
{
“得分”:4分,
“name”:“foo”
},{
“分数”:1,
“name”:“bar”
},{
“得分”:3分,
'name':'foobar'
}
]
常量myOrderedArray=\ u0.sortBy(myArray,o=>o.name);
log(myOrderedArray)

+1。看看你为什么使用
-
而不是
@Tomalak Geret'kal:当你输入评论时,我添加了一段解释。希望我是清楚的。这是一个很好的参考看看!谢谢,但遗憾的是它没有起作用。也没有:myArr.sort(函数(a,b){myArr[a].score-myArr[b].score});嘎,忘记了返回一个
。我的错。修正了答案;现在可能有用了!对Scheme和Haskell的处理太多了:(你正在对一个对象数组进行排序。它们不再是文本了。