Nested Ternaries vs Switch Statements

// Approach1: Use Nested Ternaries
const normaliseEndpoint = (endpoint) => {
  const trim = endpoint.trim()
  const trimLowerCase = trim.toLowerCase()
  return trimLowerCase.startsWith('http://')
    ? trim.slice(5)
    : trimLowerCase.startsWith('https://')
    ? trim.slice(6)
    : !trimLowerCase.startsWith('//')
    ? `//${trim}`
    : trim
}

// Approach2: Use Variables In Switch Statements
const normaliseEndpoint = (endpoint) => {
  const trim = endpoint.trim()
  const trimLowerCase = trim.toLowerCase()
  switch(true) {
    case trimLowerCase.startsWith('http://'):
      return trim.slice(5)
    case trimLowerCase.startsWith('https://'):
      return trim.slice(6)
    case !trimLowerCase.startsWith('//'):
      return `//${trim}`
    default:
      return trim
  }
}

Last updated

Was this helpful?