对对象数组进行排序

发布于 2024-11-05 01:59:09 字数 439 浏览 4 评论 0原文

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

var myArr = [];

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

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

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

我如何对数组进行排序,以便它按“分数”参数升序,这样它就会更改为:

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

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

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

提前致谢。

I have an array of object literals like this:

var myArr = [];

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

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

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

How would I sort the array so it ascends by the 'score' parameter such that it would change to:

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

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

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

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黄昏下泛黄的笔记 2024-11-12 01:59:09

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

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

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

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

The way the array elements are sorted depends on what number the function passed in returns:

  • < 0 (negative number): a goes ahead of b
  • > 0 (positive number): b goes ahead of a
  • 0: In this cases the two numbers will be adjacent in the sorted list. However, the sort is not guaranteed to be stable: the order of a and b relative to each other may change.
满意归宿 2024-11-12 01:59:09

您可以查看 MDN 上的 Array.sort 文档 。特别是关于提供自定义compareFunction的文档

You could have a look at the Array.sort documentation on MDN. Specifically at the documentation about providing a custom compareFunction

快乐很简单 2024-11-12 01:59:09
const myArray = [  
    {
   'score': 4,
   'name': 'foo'
},{
   'score': 1,
   'name': 'bar'
},{
   'score': 3,
   'name': 'foobar'
}
]

const myOrderedArray = _.sortBy(myArray, o => o.name);
console.log(myOrderedArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js"></script>

lodash 排序

const myArray = [  
    {
   'score': 4,
   'name': 'foo'
},{
   'score': 1,
   'name': 'bar'
},{
   'score': 3,
   'name': 'foobar'
}
]

const myOrderedArray = _.sortBy(myArray, o => o.name);
console.log(myOrderedArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js"></script>

lodash sortBy

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文