使用lodash按值排序数组(整数)

时间:2015-03-09 16:38:56

标签: arrays sorting return lodash

我真的在努力,但我找不到解决方案。

我有一个数组,我想按值(所有整数)对它进行排序。 我想,好吧,让我们使用lodash,肯定必须有一个方便的功能。

不知怎的,我无法想办法做到这一点。

到目前为止,我得到了这个:

myArray = [3, 4, 2, 9, 4, 2]

如果我使用此代码,我得到了一个结果:

myArray = _(myArray).sort();

但不幸的是,返回值似乎不再是一个数组。排序后myArray.length未定义。

我找到了成千上万的lodash排序数组的例子,但总是通过密钥。 https://lodash.com/docs#sortBy

有人可以告诉我如何将以下返回结果作为数组?:

[2, 2, 3, 4, 4, 9]

这不是那么困难,但不知怎的,我没有完成它......

有时我认为lodash文档有点复杂。 我可能只是错过了一个重要的细节......

2 个答案:

答案 0 :(得分:60)

您可以在此处使用sortBy()功能。您不必指定密钥,因为它将回退到identity()

var myArray = [ 3, 4, 2, 9, 4, 2 ];

_.sortBy(myArray);
// → [ 2, 2, 3, 4, 4, 9 ]

_(myArray).sortBy().take(3).value();
// → [ 2, 2, 3 ]

答案 1 :(得分:0)

选择答案是正确的,但我们也可以通过 sort()

来完成该任务
const _ = require('lodash');
const myArray = [1,2,3,4,"A1","A10","A11","A12","A2","A3","A4","AZ","A5","B10", "B2", "F1", "F12", "F3",1,5,6,7,0,"a","b","a1"];

const sortFilter = _(myArray).sort().value();
console.log(sortFilter)

const sortByFilter = _(myArray).sortBy().value();
console.log(sortByFilter)