- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如果我关于排序和分组的假设是正确的,我很难从 lodash 文档中弄清楚。
如果我使用 sortBy,然后使用 groupBy,groupBy 生成的数组是否保持项目的排序顺序?
例如,假设我有以下数组:
var testArray = [[5,6],[1,3],[5,4],[5,1]]
而且我想按它们的第一个元素对它们进行分组,但也希望它们按这些组中的第二个元素进行排序。因此,在 lodash 中,我假设我可以执行以下操作:
_.chain(testArray)
.sortBy(function (item) { return item[1]; })
.groupBy(function (item) { return item[0]; })
.value()
这最终产生了我期望的结果:
{
1: [[1,3]]
5: [[5,1],[5,4],[5,6]]
}
这只是巧合吗?关于 sortBy 和 groupBy 的工作方式是否有任何内容可以确保分组数组的这种排序?文档说 sortBy 是一种稳定的排序,这是否同样适用于 groupBy?有什么理由我不应该假设这每次都有效?
最佳答案
不是。这是不保留顺序的示例:
const data = [
{
item: 'item1',
group: 'g2'
}, {
item: 'item2',
group: 'g3'
}, {
item: 'item3',
group: 'g1'
}, {
item: 'item4',
group: 'g2'
}, {
item: 'item5',
group: 'g3'
}
]
const groupedItems = _(data).groupBy(item => item.group).value()
在这种情况下,人们会期望组顺序为:g2、g3、g1 - 实际情况是它们按 g1、g2、g3 排序。
不过您可以使用原始数组对它们进行重新排序。
const groupedItems = _(data)
.groupBy(item => item.group)
.sortBy(group => data.indexOf(group[0]))
.value()
这将确保项目的原始顺序。
关于javascript - lodash sortBy 然后 groupBy,顺序是否保持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860526/
我有一个向量列表。但现在我想使用 sortBy 函数按长度对这个向量列表进行排序。我已经拥有的是: import Data.List vectorLength::(Int,Int)->Float ve
我想按名称列对集合进行排序。使用 sortBy() 方法不起作用。 $collection = \App\Http\Resources\MyResource::collection($test
我有这个代码 $list = Elements::where('list_id', $id)->with('visitors')->get()->sortBy(function
我想知道为什么 Scala Set 没有 sortBy 方法,而 Seq 或 List 因为它也扩展了 Iterable... 最佳答案 Set 是一种有点有序(这就是它可迭代的原因)但未排序的元素集
它基本上显示来自mysql数据库的数据并使用 $sortby = $_GET['sort']; 我得到的错误是 Notice: Undefined index: sort in /home/45074
我有一个带有这个 ng-repeat 的表 ticket in filteredTickets = (vm.tickets | filter : vm.search | orderBy : vm.pr
HTML: Date Progress adminUsername 指令: .directive('reportrowgroup', function () { r
我正在尝试对对象进行排序,但似乎无法在排序后保留每个对象的键名称。 这是我正在排序的示例 json series_data: { embeded: { objectNameA: {
这是一个源自another question的问题.我需要能够动态传递要在具有左连接的 Slick 查询中进行排序的列。这种特殊情况下的问题是左连接表变得可选,我不知道如何处理。如果我使表 Compa
假设函数的输入是: [(6,-275),(3,123),(7,1000),(9,-572),(3,333),(1,-23)] 输出应该是: [(9,-572),(6,-275),(1,-23),(3,
好的,我有一个 Controller ,其模型设置如下: App.MyModel = DS.Model.extend({ myOtherProperty: attr(), mySort
我对 F# 还很陌生,使用了 Seq.sortBy 函数,但是它按升序对我的列表进行排序。如何使用 Seq.sort 按降序对其进行排序? 例如,示例代码将是... let DisplayList =
我使用 underscore 的 sortBy() 对字符串的 array 进行排序。但我想比其他字符串更早地对几个(硬编码的)字符串进行排序 - 我将向用户显示输出,并且将相关字符串放在前面会更自然
Haskell 的 sortBy 相当于什么?在 Coq 中? 总的来说,我发现 Coq 标准库的排序令人困惑。 我希望对排序列表进行一些“公理化”,以及不同排序的可用性,我可以为其提供排序功能。 然
我有一个带有子集合的集合,例如: + +--- name: 1a8 Lorem Ipsum + +--- name: 1a2 Lorem Ipsum + +--- name: 1a10 Lorem I
我正在使用 Primefaces + JSF 开发一个应用程序。我的数据表可以工作,但在排序 sortBy= 时出现问题,我尝试了 sortBy="#{pc.rota}" 但它也不起作用: 数据表显示
我想将 List.sortBy 接受的参数传递给另一个函数。我的代码看起来像这样: //Scala def sortAndMore(list: List[(String, _)], sortFn: O
我正在尝试根据每个元组中的第 4 个元素对我的元组列表进行排序。第四个元素包含一个人名字符串。我想将包含相同名称的元组放在一起。排序前的元组列表示例如下: [("A",100,"Q",3,"Todd"
我有一个带有子集合的集合,例如: + +--- name: 1a8 Lorem Ipsum + +--- name: 1a2 Lorem Ipsum + +--- name: 1a10 Lorem I
也许我需要将数组转换为真实日期才能使其工作?如果使用 moment 性能会成为问题,因为我还需要对数组进行排序。 const arr = [{ "created_at": "2017-07-19
我是一名优秀的程序员,十分优秀!