Swift 如何使用带有索引 [i] 的 for 循环读取数组的所有索引
Swift how to read through all indexes of array using for loop with index [i]
到目前为止,我的代码仅适用于 1 个索引,但我希望它读取数组中的所有现有索引。例如,元素数组可以携带多组数字
数组 ["2,2,5" , "5,2,1"] 包含 2 个索引 [0] 和 [1]
var element = Array[0]
let splitData = element.components(separatedBy: ",")
// split data will always contain 3 values.
var value1 = splitData[0]
var value2 = splitData[1]
var value3 = splitData[2]
print("value 1 is : " + value1 + " value 2 is : " + value2 + " value 3 is: " + value3)
当Array ["2,2,5" , "5,2,1"]
时这段代码的输出是:
value 1 is : 2 value 2 is : 2 value 3 is : 5
如输出所示,我如何遍历 Array 的所有索引以显示它们的 3 个值中的每一个。
我希望输出为:
value 1 is : 2 value 2 is : 2 value 3 is : 5
value 1 is : 5 value 2 is : 2 value 3 is : 1
我认为我需要使用 for 循环,但我不确定如何将其应用于此。我对编码很陌生。任何帮助将不胜感激
for i in 0..<array.count {
var element = array[i]
let splitData = element.components(separatedBy: ",")
// split data will always contain 3 values.
var value1 = splitData[0]
var value2 = splitData[1]
var value3 = splitData[2]
print("value 1 is : " + value1 + " value 2 is : " + value2 + " value 3 is: " + value3)
}
您可以使用以下两种解决方案,具体取决于哪种方案最适合您。
1) 如果您的目标是将像 ["3,4,5", "5,6", "1", "4,9,0"]
这样的数组转换为 flattened 版本 ["3", "4", "5", "5", "6", "1", "4", "9", "0"]
您可以使用 flatMap
运算符如下:
let myArray = ["3,4,5", "5,6", "1", "4,9,0"]
let flattenedArray = myArray.flatMap { [=10=].components(separatedBy: ",") }
然后你可以像其他数组一样对其进行迭代,
for (index, element) in myArray.enumerated() {
print("value \(index) is: \(element)")
}
2) 如果您只想遍历它并保持级别,您可以使用以下代码。
let myArray = ["3,4,5", "5,6", "1", "4,9,0"]
for elementsSeparatedByCommas in myArray {
let elements = elementsSeparatedByCommas.components(separatedBy: ",")
print(elements.enumerated().map { "value \([=12=]) is: \()" }.joined(separator: " "))
}
希望对您有所帮助!
到目前为止,我的代码仅适用于 1 个索引,但我希望它读取数组中的所有现有索引。例如,元素数组可以携带多组数字 数组 ["2,2,5" , "5,2,1"] 包含 2 个索引 [0] 和 [1]
var element = Array[0]
let splitData = element.components(separatedBy: ",")
// split data will always contain 3 values.
var value1 = splitData[0]
var value2 = splitData[1]
var value3 = splitData[2]
print("value 1 is : " + value1 + " value 2 is : " + value2 + " value 3 is: " + value3)
当Array ["2,2,5" , "5,2,1"]
时这段代码的输出是:
value 1 is : 2 value 2 is : 2 value 3 is : 5
如输出所示,我如何遍历 Array 的所有索引以显示它们的 3 个值中的每一个。
我希望输出为:
value 1 is : 2 value 2 is : 2 value 3 is : 5
value 1 is : 5 value 2 is : 2 value 3 is : 1
我认为我需要使用 for 循环,但我不确定如何将其应用于此。我对编码很陌生。任何帮助将不胜感激
for i in 0..<array.count {
var element = array[i]
let splitData = element.components(separatedBy: ",")
// split data will always contain 3 values.
var value1 = splitData[0]
var value2 = splitData[1]
var value3 = splitData[2]
print("value 1 is : " + value1 + " value 2 is : " + value2 + " value 3 is: " + value3)
}
您可以使用以下两种解决方案,具体取决于哪种方案最适合您。
1) 如果您的目标是将像 ["3,4,5", "5,6", "1", "4,9,0"]
这样的数组转换为 flattened 版本 ["3", "4", "5", "5", "6", "1", "4", "9", "0"]
您可以使用 flatMap
运算符如下:
let myArray = ["3,4,5", "5,6", "1", "4,9,0"]
let flattenedArray = myArray.flatMap { [=10=].components(separatedBy: ",") }
然后你可以像其他数组一样对其进行迭代,
for (index, element) in myArray.enumerated() {
print("value \(index) is: \(element)")
}
2) 如果您只想遍历它并保持级别,您可以使用以下代码。
let myArray = ["3,4,5", "5,6", "1", "4,9,0"]
for elementsSeparatedByCommas in myArray {
let elements = elementsSeparatedByCommas.components(separatedBy: ",")
print(elements.enumerated().map { "value \([=12=]) is: \()" }.joined(separator: " "))
}
希望对您有所帮助!