怎么使用lodash实现倒序排列字符串

今天遇到一个需要对数组进行排序的需求,不但要支持正序ASC(从小到大)还需要支持倒序DESC(从大到小).当然可以调用数组的sort方法实现,看页面中已经加装了lodash想着应该有更简单的方法:

就试图使用lodash实现数组排序,实现排序的方法也很简单:

_.sortBy

比如有数组:[1,2,3,9,0] 

正序排列可以: 

>var nums = [1,2,3,9,0];
>_.sortBy(nums);
(5) [0, 1, 2, 3, 9]

那要倒序排列呢? 看了下sortBy的函数定义,也没发现有指定倒序还是正序的参数,咋办?可以用个小技巧:

>_.sortBy(nums,function(n) {return -n});
(5) [9, 3, 2, 1, 0]

也就是使用每个元素的负数做正序排列也就得到了元素的倒序排列结果.

貌似解决了,用字符串数组试下:

>var num = ['a','b','e','c','d'];
>_.sortBy(num, function(o) {return -o;})
(5) ["a", "b", "e", "c", "d"] 

可以看出这种小伎俩遇到字符串就不灵了,那咋办? 可以再使用个_.reverse:

>num
(5) ["a", "b", "e", "c", "d"]
>_.reverse(_.sortBy(num))
(5) ["e", "d", "c", "b", "a"]  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个不安分的程序员

祝您财源广进

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值