夥計們。 如何將數組從特定索引排序到特定索引,而不是全數組排序。我正在尋找很多,但沒有找到任何解決方案,所以請告訴我如何做到這一點。將數組從特定索引排序到特定索引
回答
最簡單的方法是從數組中排序它的特定範圍,然後用排序後的數組替換該特定範圍。
防爆
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. 遍歷從一個特定索引到特定索引的集合
- 7. 按特定級別索引重新排列數組順序
- 8. 以數組降序排列特定索引
- 9. 如何從數組中檢索特定的索引?
- 10. 將「do_action」插入到特定索引處的數組中(PHP)
- 11. 將對象添加到特定索引中的數組中
- 12. 如何將數組插入數組的特定索引?
- 13. 解壓縮特定索引
- 14. 如何在特定索引
- 15. 查找特定索引?
- 16. 從python中的特定索引值中排序列表
- 17. 升序以下特定索引
- 18. 使用彈簧數據索引將文檔索引到特定集合
- 19. 將v-for設置爲特定索引
- 20. 從arraycollection回溯特定索引
- 21. 從特定索引中取出元素
- 22. 從特定索引列表AddRange?
- 23. 從sql中獲取特定索引
- 24. 卸下炭在串從特定索引
- 25. 從索引中刪除特定的td
- 26. ActionScript - 檢索特定濾鏡的索引
- 27. 只搜索特定的索引
- 28. 數組排序用索引
- 29. JavaScript數組排序()索引
- 30. 如何從源數組中搜索特定的索引值數組php
這將是更好,如果你也能分享你的代碼,以顯示你已經嘗試過什麼,或者知道你在哪裏出了錯。 –
你到目前爲止嘗試過什麼?想到一個解決方案,但可能不是最有效的,它是根據您的索引將陣列首先分割成更小的陣列。然後對你想要排序的部分進行排序並再次組合數組。 –