Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在swift 4.2中从数组返回组_Swift - Fatal编程技术网

在swift 4.2中从数组返回组

在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"] 还要记住,数组可能并不总是完全可除的(例如,上面的示例数组很容易

我见过这个问题(),但问题是它只处理一次性返回字符串的第一个字符

我试图实现一些不同的功能,但对Swift语言还不够熟悉,不知道我需要什么功能

我的问题如下,我有一个数组:

[“10”、“44”、“33”、“31”、“38”、“49”、“8”、“4”、“40”]

“Swift 4.2”返回方式是什么,例如,三人一组,即:

["10", "44", "33"]
["31", "38", "49"]
["8", "4", "40"]

还要记住,数组可能并不总是完全可除的(例如,上面的示例数组很容易有10个值,而不是9个值),因此我需要忽略数组末尾的任何“多余”数字。

对使用
跨步
创建的数组使用
map
。As
to
传递
数组中项目的最后一个索引,该索引可以被三整除,而不包含其余部分(多余的数字将被忽略)。现在在
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的问题:……所以我需要忽略数组末尾的任何“多余”数字