我有像
这样的CGFloat数组[[[1,2],[2,3]],[[6,1],[5,6]],[[6,1],[11,6],[21,3]]]
不,我想合并子阵列并在每个子阵列中添加数组数据,如
[[1,2],[2,3],[9999,9999],[6,1],[5,6],[9999,9999],[6,1],[11,6],[21,3]]
现在我可以使用for circulation
并在其中运行beforearray + array[i] + [9999,9999]
来实现此功能,但我想知道最佳方式
答案 0 :(得分:1)
您可以执行以下操作:
let foo = [[[1,2],[2,3]],[[6,1],[5,6]],[[6,1],[11,6],[21,3]]]
let bar = foo.joinWithSeparator([[9999,9999]]).map({$0})
print(bar)
// [[1, 2], [2, 3], [9999, 9999], [6, 1], [5, 6], [9999, 9999], [6, 1], [11, 6], [21, 3]]
joinWithSeparator
返回一个视图,其元素是在序列separator
的元素之间插入给定self
的结果。
答案 1 :(得分:0)
您不能使用像filter
这样的特殊数组运算符,因为第二个数组与第一个数组的类型不同。
这里有一个简单的循环:
let originalTab:[[[CGFloat]]] = [[[1,2],[2,3]],[[6,1],[5,6]],[[6,1],
var newTab:[[CGFloat]] = []
for subArray in originalTab {
newTab.appendContentsOf(subArray)
newTab.append([9999, 9999])
}