I'm making a random password generator in Vannila JS , I'm facing a unknown problem in following code :
function generatePassword(lower, upper, number, symbol, length) {
  let generatedPassword = "";
  const typesCount = lower + upper + number + symbol;
  const typesArr = [{ lower }, { upper }, { number }, { symbol }].filter(
    (item) => Object.values(item)[0]
  );
  // Doesn't have a selected type
  if (typesCount === 0) {
    return "";
  }
  // create a loop
  for (let i = 0; i < length; i += typesCount) {
    typesArr.forEach((type) => {
      const funcName = Object.keys(type)[0];
      generatedPassword += randomFunc[funcName]();
    });
  }
  const finalPassword = generatedPassword.slice(0, length);
  return finalPassword;
}
In this block of code specifically the Object.values(item)[0] doesn't work if I enclose the statement in Curly Braces {} :
const typesArr = [{ lower }, { upper }, { number }, { symbol }].filter(
    (item) => Object.values(item)[0]
  );
I don't understand why this is happening , I tried searching docs but no avail , Thanks !