如何使用Lo-Dash按降序排序数组?

时间:2016-02-03 10:53:06

标签: arrays lodash

我有一个推送项目的数组,当我使用Lo-Dash显示时,它按升序显示。

这是我的代码:

<h3>Sorted Array</h3>
<ul id="sorted"></ul>

// Sample array.
var array = [];

// Utility function used to push data into the
// array while maintaining the sort order.
function sortedPush( array, value ) {
    array.splice( _.sortedIndex( array, value ), 0, value );
}

// push items.
sortedPush( array, "20151124_nov_24_2015" );
sortedPush( array, "201511011_nov_1_2015" );
sortedPush( array, "20160118_jan_18_2016" );
sortedPush( array, "201508031_aug_3_2015" );

// The ul for output.
var list = document.getElementById( "sorted" );

// Display the sorted array.
_.each( array, function( item ) {
    var li = document.createElement( "li" );
    li.appendChild( document.createTextNode( item ) );
    list.appendChild( li );
});

输出:

  

排序数组

     

201508031_aug_3_2015
   201511011_nov_1_2015
  20151124_nov_24_2015
  20160118_jan_18_2016

现在,我该如何按降序显示?

预期输出应为:

  

20160118_jan_18_2016
  20151124_nov_24_2015
  201511011_nov_1_2015
  201508031_aug_3_2015

这是小提琴 - https://jsfiddle.net/vLvv6ogf/1/

// Sample array.
var array = [];

// Utility function used to push data into the
// array while maintaining the sort order.
function sortedPush(array, value) {
  array.splice(_.sortedIndex(array, value), 0, value);
}

// push items.
sortedPush(array, "20151124_nov_24_2015");
sortedPush(array, "201511011_nov_1_2015");
sortedPush(array, "20160118_jan_18_2016");
sortedPush(array, "201508031_aug_3_2015");


// The ul for output.
var list = document.getElementById("sorted");

// Display the sorted array.
_.each(array, function(item) {
  var li = document.createElement("li");
  li.appendChild(document.createTextNode(item));
  list.appendChild(li);
});
<h3>Sorted Array</h3>
<ul id="sorted"></ul>

感谢您的任何帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

按顺序对数组进行简单排序,然后将其反转

_。反转(数组)

这是lodash文档链接 _.reverse(array)

答案 1 :(得分:1)

如果您的数组按升序排序,并且您希望按降序输出,只需将each()来电替换为eachRight()即可。这将以相反的方向遍历数组。