函数式非破坏性数组排序
functional non-destructive array sort
除了克隆数组然后就地排序的原生方法之外,是否存在更适合非破坏性排序的算法和现有实现?
需要在不改变源数组的情况下将浮点数组排序为新数组。我的搜索结果相当少,因为大多数文献都关注于使用就地排序来减少内存需求。
使用本地sorted = [].slice().sort()
工作良好。这个问题是关于理解是否有其他的性能排序实现,当内存约束被删除,因为无论如何都需要一个新的数组。
使用ES6展开运算符对数组进行不变排序有一种更简单的语法:
[...array].sort(sortFn)
正如注释重复了几次:
-
shuffledArray.slice().sort()
是默认的方式。 - 我们不太清楚如何使用你提到的库来获得更好的算法/方法。
看到非破坏性排序的动机与编写函数式代码有关,你正在看Ramda…看看Facebook的ImmutableJS库,如果你还没有。
特别是Seq
。您可以开始将浮点数组存储在Seq
中,对其进行排序,并确保原始Seq保持正确的顺序。此外,它还利用了惰性求值。http://facebook.github.io/immutable-js/docs//Seq
http://facebook.github.io/immutable-js/docs//Seq/sortBy
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- 函数式非破坏性数组排序