伙计们。 如何将数组从特定索引排序到特定索引,而不是全数组排序。我正在寻找很多,但没有找到任何解决方案,所以请告诉我如何做到这一点。将数组从特定索引排序到特定索引
回答
最简单的方法是从数组中排序它的特定范围,然后用排序后的数组替换该特定范围。
防爆
var array = [1,50,42,15,3,25,63,7,26,8,10,36,78,12]
let sliceSortedArray = array[5...10].sorted()
array.removeSubrange(5...10)
array.insert(contentsOf: sliceSortedArray, at: 5)
print(sliceSortedArray) // [7, 8, 10, 25, 26, 63]
print(array) // [1, 50, 42, 15, 3, 7, 8, 10, 25, 26, 63, 36, 78, 12]
编辑作为@马丁 - [R建议你也可以使用replaceSubrange(_:with:)
。
array.replaceSubrange(5...10, with: array[5...10].sorted())
稍微简单一点:'array.replaceSubrange(5 ... 10,with:array [5 ... 10] .sorted()) ' –
@MartinR你还可以使用'array [range] = otherarray'吗?这将进一步简化它。 –
@MartinR感谢您的好建议,使用'replaceSubrange'编辑答案。 –
您可以使用filter
和sort
的组合,它将返回一个带有排序元素的新数组。东西沿线
let newArray = originalArray.filter {
//This is where you filter based on indexes
}.sort {
//This is where you sort your filtered array
}
您可以在阵列的切片直接调用sort()
:
var array = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
array[2...7].sort()
print(array)
// [9, 8, 2, 3, 4, 5, 6, 7, 1, 0]
- 1. 从特定索引复制数组
- 2. 添加到特定索引
- 3. 遍历从一个特定索引到特定索引的集合
- 4. 按特定级别索引重新排列数组顺序
- 5. 将对象添加到特定索引中的数组中
- 6. 将“do_action”插入到特定索引处的数组中(PHP)
- 7. 如何在特定索引
- 8. 查找特定索引?
- 9. 使用弹簧数据索引将文档索引到特定集合
- 10. 将v-for设置为特定索引
- 11. 卸下炭在串从特定索引
- 12. 从arraycollection回溯特定索引
- 13. 从特定索引中取出元素
- 14. ActionScript - 检索特定滤镜的索引
- 15. 只搜索特定的索引
- 16. JavaScript数组排序()索引
- 17. 如何从源数组中搜索特定的索引值数组php
- 18. $ lookup localField引用数组中的特定索引
- 19. 将ItemsSource绑定ItemsControl到数组索引
- 20. 从自定义索引数组中获取数组索引
- 21. 将新对象插入特定数组索引
- 22. 抓斗从特定的数组索引的ID
- 23. 如何从数组中删除特定的索引
- 24. 如何从特定索引swift 3拆分数组?
- 25. 需要从PHP数组中获取特定索引
- 26. 从哪个索引数组值位于特定错误带内?
- 27. 插入对象到数组中的特定索引在React
- 28. PHP - 数组到具有特定索引/键的json
- 29. 在特定元素上查找排序数组的范围索引
- 30. 由内列出的特定索引排序列出清单
这将是更好,如果你也能分享你的代码,以显示你已经尝试过什么,或者知道你在哪里出了错。 –
你到目前为止尝试过什么?想到一个解决方案,但可能不是最有效的,它是根据您的索引将阵列首先分割成更小的阵列。然后对你想要排序的部分进行排序并再次组合数组。 –