JSFiddle - React, Tailwind, and code Playground

JavaScript

const obj = {
  cat: false,
  dog: true,
  fish: false
}
const fn = ({
  cat,
  dog,
  fish
}, key) => {
  const resetObject = (obj) => {
    return Object.keys(obj).reduce((result, current) => {
      return {
        ...result,
        [current]: false
      }
    }, {})
  }
  const isCat = (key) => key === "cat";
  const isDog = (key) => key === "dog";
  return (isCat(key)) ? ({
    ...resetObject({
      cat,
      dog,
      fish
    }),
    ...{
      cat: true
    }
  }) : (isDog) ? ({
    ...resetObject({
      cat,
      dog,
      fish
    }),
    ...{
      dog: true
    }
  }) : ({
    ...resetObject({
      cat,
      dog,
      fish
    }),
    ...{
      fish: true
    }
  })
}

console.log(fn(obj, "cat"))