首页 > 解决方案 > Swift 是否有任何简单的方法来获取二维数组中的列?

问题描述

为了获得一排,我可以轻松做到print(array[3])。但是要获得一列,我必须创建一个空数组,遍历所有行,然后追加到数组。对于这么简单的事情来说,这太过分了!

目前,我必须通过所有这些努力才能获得专栏:

let array = [[1,   9,   29,  55,  90],
             [19,  22,  33,  59,  94],
             [33,  44,  55,  62,  101],
             [75,  80,  82,  90,  197],
             [91,  99,  104, 144, 222]]

func get(column : Int, of array: [[Int]]) -> [Int]? {
    guard !array.isEmpty else {
        print("array is empty")
        return nil
    }
    guard column < array.count else {
        print("such a column doesn't exist")
        return nil
    }
    guard column > -1 else {
        print("column index can't be negative")
        return nil
    }

    var column : [Int] = []
    for row in 0..<array.count {
        column.append(array[row][column])
    }

    return column
}

get(column: 3, of: array) // Optional([55, 59, 62, 90, 144])

标签: arraysswiftalgorithmmultidimensional-arrayhigher-order-functions

解决方案


推荐阅读