Diciamo che ho questo array:Come trovare rapidamente l'indice di un elemento in una matrice multidimensionale?
let a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Ora voglio qualcosa di simile:
public func indicesOf(x: Int, array: [[Int]]) -> (Int, Int) {
...
}
modo che io possa chiamare in questo modo:
indicesOf(7, array: a) // returns (2, 0)
Naturalmente, ho può usare:
for i in 0..<array.count {
for j in 0..<array[i].count {
if array[i][j] == x {
return (i, j)
}
}
}
Ma non è nemmeno vicino a swifty!
Voglio un modo per fare questo che è swifty. Penso che forse posso usare reduce
o map
?
E' non ha senso usare 'map/filter/reduce' per questo caso perché non è necessario trasformare una lista di qualcosa in una lista di un'altra cosa Devi solo fare una sorta di controllo di uguaglianza tra i valori usando 'enumerate()' se pensi che subscript e '.count' siano brutti. – ozgur