我有一个嵌套数组,它包含一堆“行”,并且包含一堆数据点。要将它们转换为“列”,我使用2个循环遍历嵌套数组并反转维度(在此处放置正确的术语)。 (第1部分)
目前我正在尝试尽可能减少循环次数并使用.map .filter和.reduce。
是否可以通过地图完全逆转? 我已经把它放到了一个循环和一个地图上。 (第2部分)
我被卡住了,因为你无法真正将$0
放在那里两次。
(这非常适合游乐场)
第1部分:
var rowsArray : [[Int]] = []
for iA in 0..<10 {
rowsArray.append([])
for iB in 0..<2 {
rowsArray[iA].append(iA * iB)
}
}
var columnsArray : [[Int]] = []
for _ in 0..<rowsArray[0].count {
columnsArray.append([])
}
for iA in 0..<rowsArray.count {
let currentRow = rowsArray[iA]
for iB in 0..<currentRow.count {
let currentInt = currentRow[iB]
columnsArray[iB].append(currentInt)
}
}
第2部分:
var secondColumnsArray : [[Int]] = []
for iA in 0..<rowsArray[0].count {
let column = rowsArray.map { $0[iA] }
secondColumnsArray.append(column)
}
print(rowsArray)
print(columnsArray)
print(secondColumnsArray)
答案 0 :(得分:2)
尝试:
Swift2:
let columnsArray = map(indices(rowsArray[0])) { col in
map(indices(rowsArray)) { row in
rowsArray[row][col]
}
}
Swift1.2:
Intent intent = new Intent(MainActivity.this,MainActivity.class);
startActivity(intent);
finish();