在swift 4.2中从数组返回组
我见过这个问题(),但问题是它只处理一次性返回字符串的第一个字符 我试图实现一些不同的功能,但对Swift语言还不够熟悉,不知道我需要什么功能 我的问题如下,我有一个数组:在swift 4.2中从数组返回组,swift,Swift,我见过这个问题(),但问题是它只处理一次性返回字符串的第一个字符 我试图实现一些不同的功能,但对Swift语言还不够熟悉,不知道我需要什么功能 我的问题如下,我有一个数组: [“10”、“44”、“33”、“31”、“38”、“49”、“8”、“4”、“40”] “Swift 4.2”返回方式是什么,例如,三人一组,即: ["10", "44", "33"] ["31", "38", "49"] ["8", "4", "40"] 还要记住,数组可能并不总是完全可除的(例如,上面的示例数组很容易
[“10”、“44”、“33”、“31”、“38”、“49”、“8”、“4”、“40”]
“Swift 4.2”返回方式是什么,例如,三人一组,即:
["10", "44", "33"]
["31", "38", "49"]
["8", "4", "40"]
还要记住,数组可能并不总是完全可除的(例如,上面的示例数组很容易有10个值,而不是9个值),因此我需要忽略数组末尾的任何“多余”数字。对使用
跨步
创建的数组使用map
。Asto
传递数组中项目的最后一个索引,该索引可以被三整除,而不包含其余部分(多余的数字将被忽略)。现在在map
closure中返回索引为$0
的元素数组,$0+2
let array = ["10", "44", "33", "31", "38", "49", "8", "4", "40"]
let finalArray = stride(from: 0, to: array.endIndex - (array.endIndex % 3), by: 3).map {
Array(array[$0...$0+2])
}
有趣的是,我刚刚发现了stride函数,但我没有将其用于此应用程序。谢谢不适用于计数不是3的倍数的数组。这个问题是重复的。看看matt的回答@Carpsen90,我注意到了,但是你的评论写得更早,你不认为这是一个重复的问题吗?还有更好的答案吗?回答重复的问题。无论如何,您可以缩短解决方案的长度finalArray.append(Array(Array[n…min(n+2,Array.count-1)])
。还有其他的改进可以使它更快…@Carpsen90是的,我同意,这是相似的,但;从OP的问题:……所以我需要忽略数组末尾的任何“多余”数字