code: function queryParamsState(queryParamsArray, controller) {
    return queryParamsArray.reduce(
      (state, qp) => {
        let value = qp.value(controller);
  
        state[qp.key] = {
          value,
          serializedValue: qp.serializedValue(controller),
          as: qp.as,
          defaultValue: qp.defaultValue,
          changed: JSON.stringify(value) !== JSON.stringify(qp.defaultValue)
        };
        return state;
      },
      {},
      undefined
    );
  }
docs: Creates QueryParamsState interface.
  
  @param {Ember.NativeArray} queryParamsArray
  @param {Ember.Controller} controller
  @returns {object}