【发布时间】:2015-05-10 22:03:18
【问题描述】:
我真的在这方面苦苦挣扎,但我找不到解决方案。
我有一个数组,我想按值(所有整数)对其进行排序。 我想,好吧,让我们使用 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 文档有点复杂。 我可能只是错过了一个重要的细节......
【问题讨论】:
-
没有lodash,你可以运行
myArray = myArray.sort() -
@Pete 实际使用
myArray.sort()将不 对数字起作用,因为这个javascript 函数实际上对数字进行排序,就好像它们是字符串。所以 [3, 1, 2, 11234] 将被排序为 [1, 11234, 2, 3]。您必须进行一些愚蠢的转换才能使 JS 将其排序为数字。如果可以,我建议使用 Lodash 的 _.sortBy()。见参考here。 -
@FireDragon 我看你不是在侮辱一个人。但是请注意您的语言。
标签: arrays sorting return lodash