我有一个像这样的对象文字数组:
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'
}
提前致谢。
答案 0 :(得分:7)
尝试myArr.sort(function (a, b) {return a.score - b.score});
数组元素的排序方式取决于函数传递的返回值:
< 0
(负数):a
超前b
> 0
(正数):b
超前a
0
:在这种情况下,两个数字将在排序列表中相邻。但是,排序并不保证稳定:a
和b
相对于彼此的顺序可能会发生变化。 答案 1 :(得分:3)
您可以查看MDN上的Array.sort documentation。特别是关于提供自定义比较功能的文档
答案 2 :(得分:0)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js"></script>
&#13;
{{1}}&#13;