:title
dv_keys

:sig
StringList dv_keys(DValue tree)

:see
StringList
0_DValue
filter

:content
Returns map keys from a DValue. Scalar values produce an empty list.

These helpers keep common data-shaping code close to render code, routers, and configuration trees. They are useful for route lists, navigation items, cards, and records that need simple transformations before rendering.

```cpp
StringList keys = dv_keys(context.cfg["menu"]);
```

Prefer these helpers over open-coded loops when the transformation itself is the important part of the code. Use an explicit loop when mutation, error handling, or side effects are the main concern.

## Related Concepts

- JavaScript / React: `Array.map`, `Array.filter`, `Array.find`, object `pick`/`omit`, and grouping route or navigation records before rendering.
- PHP: `array_map`, `array_filter`, `array_unique`, and associative array projection.
