Сделайте мой массив нулевым, сохранив некоторые индексы как есть - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть массив board_matrix с некоторыми значениями в нем. И у меня также есть другой массив 'win' с некоторыми значениями индексов. Теперь я хочу сделать 'board_matrix' go со всеми нулями, кроме этих индексов в массиве 'win'.

скажем,

board_matrix = [1,0,2,2,1,0,1,0,1]
win = [0,4,8]

then output should be 
new_array = [1,0,0,0,1,0,0,0,1]

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020
board_matrix.enumerated().map { [winIndices = Set(win)] in
  winIndices.contains($0.offset) ? $0.element : 0
}
0 голосов
/ 11 апреля 2020

Вы можете перебирать массив board_matrix и перезаписывать значения, если индекс не найден в массиве win. Как то так:

for (i=0; i<board_matrix.size; i++) {
    if (!win.contains(i)) board_matrix[i] = 0;
}
...