As I see it, there are two types of DOD, one that you've mentioned and where you “work on structs of arrays, not arrays of structs”.
The other one means just giving up of encapsulation, separate the data from the methods that work with the data, think the whole app in terms on how the data flows through it and model it so everything is easy to understand and change. For added correctness, you can use immutable data structures and pure functions.