# manual-map

Prefer Array.map over manually collecting transformed elements

Creating an array, pushing one transformed value for every input element, and returning it spells Array.map manually.
Instead, you SHOULD return the result of `map` directly.

- Category: style
- Level: warning
- Fix: suggestion
- Scope: module

## Reported

```ds title="main.ds"
function doubled(values: int32[]): int32[] {
    const result: int32[] = [];
    for (const value of values) {
        result.push(value * 2);
    }
    return result;
}
```

## Accepted

```ds title="main.ds"
function doubled(values: int32[]): int32[] {
    return values.map((value) => value * 2);
}
```

## Prior art

- [Clippy · manual_map](https://rust-lang.github.io/rust-clippy/master/index.html#manual_map)

[language/linter/src/rules/style/manual_map.rs:8](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/style/manual_map.rs#L8)
