gpt4 book ai didi

javascript - 按 'desc' 对对象数组进行排序,首先是数字

转载 作者:行者123 更新时间:2023-12-01 02:19:45 25 4
gpt4 key购买 nike

我正在尝试按降序对对象数组进行排序,并首先从数字开始,这就是我所拥有的:

var users = [
  { 'user': 'fred',   'a': 48 },
  { 'user': 'barney', 'a': 'b' },
  { 'user': 'fred',   'a': 40 },
  { 'user': 'barney', 'a': 'c' }
];
_.orderBy(users, 'a', 'desc');

结果:

0: Object {a: "b", user: "barney"}
1: Object {a: "c", user: "barney"}
2: Object {a: 48, user: "fred"}
3: Object {a: 40, user: "fred"}

预期结果:

0: Object {a: 48, user: "fred"}
1: Object {a: 40, user: "fred"}
2: Object {a: "b", user: "barney"}
3: Object {a: "c", user: "barney"}

最佳答案

您可以提供多个排序键(“iteratees”)以及每个键的顺序

_.orderBy(users, [x => isNaN(x.a), 'a'], ['asc', 'desc']);

但是,这也会对字符串进行降序排序(即,结果将为 48, 40, c, b

var users = [
{ 'user': 'x', 'a': 'a' },
{ 'user': 'x', 'a': 948 },
{ 'user': 'x', 'a': 48 },
{ 'user': 'x', 'a': -480 },
{ 'user': 'x', 'a': 'c' },
{ 'user': 'x', 'a': 548 },
{ 'user': 'x', 'a': 4558 },
{ 'user': 'x', 'a': 148 },
{ 'user': 'x', 'a': 4834534 },
{ 'user': 'x', 'a': 1 },
{ 'user': 'x', 'a': 'b' },
];

users = _.orderBy(users, [x => isNaN(x.a), 'a'], ['asc', 'desc']);
console.log(users)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js"></script>

关于javascript - 按 'desc' 对对象数组进行排序,首先是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49287313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com