Using a loose array just to specify the object properties I'm using this array to specify the properties I want to operate on. I didn't use for..in because there's a property that doesn't follow the same pattern.

const data = {};

[
  'teaching_levels',
  'axes',
  'accessibility_resources',
  'contents',
  'resources',
].forEach((name) =&gt; {
  data[name] = {
    options: results[name],
    values: req.query[name],
  };
});

// This property is different
data.licenses = results.licenses;


Is it alright to have an array like that?
I would say, yes, definitely. That saves a lot of manual code writing and makes it easier to change in the event you need to change all of them. 

The only difference I would probably make is, add your different properties when you create the object, that will not only slightly improve speed, but will also make the code a tiny bit smaller.

const data = {
    licenses: results.licenses
};

[
  'teaching_levels',
  'axes',
  'accessibility_resources',
  'contents',
  'resources',
].forEach(name =&gt; data[name] = {
    options: results[name],
    values: req.query[name],
});