Pruning unwanted columns from a selected row
response is an implicit global, which is a no-no. Now, I imagine it is declared in a wider scope already, but it's still disconcerting to see a function have such crass side-effects. It just overwrites the entire response variable (but if other functions have their own references to the previous value, they won't know about the overwriting).
I'd use a callback or a promise to "return" a fresh object, and let some other piece of code deal with whether to redefine response.
Your find call can be reduced to keys.find(e =&gt; key === e) - you don't need braces or return for one-line statements, or parentheses around a single parameter. But the more conventional way to do things is using indexOf. I.e.

if(keys.indexOf(e) !== -1)