【发布时间】:2021-03-10 13:11:47
【问题描述】:
我想根据以下条件对数组进行排序:
- 手动给定参数
- 然后按DESC排序
这是数组
var ar = [
[{'name' : 'b', 'val' : '1'}, {'name' : 'b', 'val' : '10'}], // 'name' are always the same
[{'name' : 'a', 'val' : '2'}, {'name' : 'a', 'val' : '2'}],
[{'name' : 'c'}, {'name' : 'c', 'val' : '100'}]
]
排序函数执行时:sortBy('a')
它应该返回我:
var ar = [
[{'name' : 'a', 'val' : '2'}, {'name' : 'a', 'val' : '2'}],
[{'name' : 'c'}, {'name' : 'c', 'val' : '100'}]
[{'name' : 'b', 'val' : '1'}, {'name' : 'b', 'val' : '10'}],
]
因为 'a' 作为参数给出,所以它具有优先级。然后从Z到A排序。
应该用 ES5 编写解决方案(如果可能,使用 lodash)。
【问题讨论】:
-
你在任何地方都没有 DESC
-
请访问help center,使用tour查看内容和How to Ask。做一些研究,搜索关于 SO 的相关主题;如果您遇到困难,请发布您的尝试minimal reproducible example,并使用
[<>]sn-p 编辑器记录输入和预期输出。 -
去掉'a',降序排序,然后添加以'a'元素开头的数组。
-
@mplungjan > 'A' 具有优先权(因为它是作为函数中的参数给出的),所以排序函数将按以下顺序进行:1)A 2)Z 到 A
-
@NirAlfasi Thx,我就这样走
标签: javascript lodash