У меня есть некоторый массив кортежей с таким определением:
[(description: [String], criterion: Int, relative: Double, average: Int, type: String, group: Int)]
и отсортировано по убыванию .criterion
.
Мне нужно добавить .group
член к каждому Touple в этом массиве, основываясь на соответствующих значениях .criterion
.
Значение .group
равно 1...n
, увеличиваясь на 1. Если несколько кортежей имеют одинаковое значение .criterion
, то они будут иметь одинаковое значение .group
.
Если у Tuple есть уникальное .criterion
, то только у одного будет уникальное значение .group
.
Я пытаюсь сделать это в коде ниже:
func appendingGroup(_ input: [(description: [String], criterion: Int, relative: Double, average: Int, type: String, group: Int)]) -> [(description: [String], criterion: Int, relative: Double, average: Int, type: String, group: Int)] {
var output: [(description: [String], criterion: Int, relative: Double, average: Int, type: String, group: Int)] = []
var index = 1
while index < input.count - 1 {
if input[index].criterion != input[index + 1].criterion && input[index].criterion != input[index - 1].criterion {
print(index)
output[index].group = index
}
index += 1
}
return output}
Это основано на вопросе @Nicolai Henriksen Swift: цикл по элементам массива и доступ к предыдущим и следующим элементам
Но у меня []
в моем output
.
Что я делаю не так?