Si, lo sé, ya hay una duda sobre cómo filtrar objetos en javascript, pero mira, no estoy preguntando cómo hacerlo, estoy preguntando cuál sería la forma más fácil, la que un novato como yo. podía recordar.
Antes de preguntar, dediqué un poco de tiempo y, después de algunas pruebas, llegué a estas soluciones. Son ejemplos pero no se me ocurre nada mejor ahora:
function queryHandlerOne(query: any) { const fields = ["name", "featured", "price", "company", "rating"]; const entries = Object .entries(query) .filter(([key, _]) => fields.includes(key)); return Object.fromEntries(entries); } function queryHandlerTwo(query: any) { const fields = ["name", "featured", "price", "company", "rating"]; const entries = Object .keys(query) .filter(key => fields.includes(key)) .reduce((acc, key) => { acc[key] = query[key]; return acc; }, {} as any); return entries; } function queryHandlerThree(query: any) { const fields = ["name", "featured", "price", "company", "rating"]; const result = Object .keys(query) .filter(key => fields.includes(key)) .map(key => [key, query[key]] as [string, any]); return Object.fromEntries(result); } function queryHandlerFour(query: any) { const fields = ["name", "featured", "price", "company", "rating"]; const result = {}; Object .keys(query) .filter(key => fields.includes(key)) .forEach(key => Object.assign(result, { [key]: query[key] })); return result; }