本文介绍了如何在Swift中不使用".reverse()"来反转数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有数组,需要使用for
循环而无需Array.reverse
方法将其反转.
I have array and need to reverse it without Array.reverse
method, only with a for
loop.
var names:[String] = ["Apple", "Microsoft", "Sony", "Lenovo", "Asus"]
推荐答案
这是@Abhinav的答案翻译为 Swift 2.2 :
Here is @Abhinav 's answer translated to Swift 2.2 :
var names: [String] = ["Apple", "Microsoft", "Sony", "Lenovo", "Asus"]
var reversedNames = [String]()
for arrayIndex in (names.count - 1).stride(through: 0, by: -1) {
reversedNames.append(names[arrayIndex])
}
使用此代码不应为您提供关于不赞成使用C样式for循环或使用--
的任何错误或警告.
Using this code shouldn't give you any errors or warnings about the use deprecated of C-style for-loops or the use of --
.
快捷键3-当前:
let names: [String] = ["Apple", "Microsoft", "Sony", "Lenovo", "Asus"]
var reversedNames = [String]()
for arrayIndex in stride(from: names.count - 1, through: 0, by: -1) {
reversedNames.append(names[arrayIndex])
}
或者,您可以正常遍历并每次减去:
Alternatively, you could loop through normally and subtract each time:
let names = ["Apple", "Microsoft", "Sony", "Lenovo", "Asus"]
let totalIndices = names.count - 1 // We get this value one time instead of once per iteration.
var reversedNames = [String]()
for arrayIndex in 0...totalIndices {
reversedNames.append(names[totalIndices - arrayIndex])
}
这篇关于如何在Swift中不使用".reverse()"来反转数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!