怎么使用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"]  

怎么使用lodash实现倒序排列字符串_第1张图片

你可能感兴趣的:(日志,前端,javascript,lodash,数组,排序,字符串)