Получаем список ключей, перебираем, кто не равен чему надо - удаляем:
Object.keys(obj).forEach(n => n !== key && delete obj[n]);
Конечно, было бы проще создавать новый объект с нужным ключом:
obj = { [key]: obj[key] };
Но вообще, почему надо ограничиваться лишь одним ключом?
Удаляем ключи существующего объекта кроме указанных:
const deleteKeys = (obj, except) =>
Object.keys(obj).forEach(n => except.includes(n) || delete obj[n]);
const obj = { a: 1, b: 2, c: 3, d: 4 };
deleteKeys(obj, [ 'a' ]);
console.log(obj); // {a: 1}
Собираем копию объекта, где будут отсутствовать ключи кроме указанных:
const pick = (obj, keys) =>
Object.fromEntries(keys.map(n => [ n, obj[n] ]));
const obj = { a: 1, b: 2, c: 3, d: 4 };
console.log(pick(obj, [ 'a', 'd' ])); // {a: 1, d: 4}