我有一个字符串数组,我想将内容分组三个来在数组中创建数组。
例如:
var arrayOfStrings = ["a0", "a1", a2", "b0", "b1", "b2"]
我希望实现:
var multiDimensionalArray = [["a0", "a1", a2"], ["b0", "b1", "b2"]]
因此,我正在寻找一个函数,可以按正确的顺序将arrayOfStrings中的元素分组到包含3个元素的数组中。
谢谢,
答案 0 :(得分:1)
尝试此功能:
func makeMultidimensional(a: [String]) -> [[String]] {
var result: [[String]] = []
for var i = 0; i < a.count; i += 3 {
result.append([a[i], a[i + 1], a[i + 2]])
}
return result
}
print(makeMultidimensional(arrayOfStrings)) // prints [["a0", "a1", "a2"], ["b0", "b1", "b2"]]
迭代字符串数组,每次向结果中添加3个项目的新数组。
答案 1 :(得分:0)
非常简单
NSArray *multiDimensionalArray = @[@[@"a0", @"a1", @"a2"], @[@"b0", @"b1", @"b2"]];
for swift
var multiDimensionalArray = [["a0", "a1", "a2"], ["b0", "b1", "b2"]];
在我的系统上运行
答案 2 :(得分:0)
func makeMultidimensional<T>(input:[T], dimensions:Int) -> [[T]]?
{
if dimensions <= 0 || count(input) % dimensions > 0 {
return nil
}
return
input.reduce(([[T]](), [T]())) {
if 0..<dimensions-1 ~= count($0.1) {
return ($0.0, $0.1 + [$1])
}
else {
return ($0.0 + [$0.1 + [$1]], [])
}
}.0
}