我从服务器获取一个数组并将其存储在 NSMutableArray 中。现在的问题是数组没有排序。例如。数组= [“A”,“B”,“无”,“C”,“D”]。我想对其进行排序并将“无”元素放在最后。即[“A”,“B”,“C”,“D”,“无”]。尝试交换但无法匹配条件,因为数组将来可能会增加。检查下面的代码,它没有按预期工作。
if array.containsObject( "None" ){
print("\(array.indexOfObject("None"))")
let noneIndex = array.indexOfObject("None")
print(noneIndex)
array.removeObject(noneIndex)
print("Remove Array:-\(array)")
array.insertObject(noneIndex, atIndex: (array.lastObject?.index)!)
print("Sorted Array:-\(array)")
}
最佳答案
也许我误解了您需要做什么,但如果您只想按字母顺序排序,可以在数组上使用 sorted()
。
您还可以使用filter
从数组中删除“None”,对其进行排序,然后将“None”附加为最后一个元素
例如,如果您有
let elements = ["Alpha", "Bold", "None", "charlie", "Delta", "echo", "zebra", "k"]
您可以从过滤它开始:
let filteredElements = elements.filter { $0.uppercased() != "NONE"}
对过滤后的元素进行排序:
var sortedElements = filteredElements.sorted { $0.uppercased() < $1.uppercased()}
附加“无”
sortedElements.append("None") // ["Alpha", "Bold", "charlie", "Delta", "echo", "k", "zebra", "None"]
然后就完成了。
这里是合并的:
let lastElement = "None"
let elements = ["Alpha", "Bold", "None", "charlie", "Delta", "echo", "zebra", "k"]
var sortedElements = elements.filter({$0.uppercased() != lastElement.uppercased()}).sorted(by: {$0.uppercased() < $1.uppercased()})
sortedElements.append(lastElement)
希望对您有帮助。
关于ios - 如何在 Swift 最后一个索引处添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41158866/