Is there a way to get every n * i element of a vector?

Viewed 1240

Is there any clever way to get every n * i element of a vector? I have this vector:

let example = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];

I want every third value of this vector, so the output will be:

let result = vec![3, 6, 9];

I know that I can achieve this with a for loop:

let mut result: Vec<i32> = vec![];
let offset = 3;
for (index, value) in example.iter().enumerate() {
    if (index + 1) % offset == 0 {
        result.push(value.clone());
    }
}
1 Answers
Related