Skip to content

Instantly share code, notes, and snippets.

@chadwithuhc
Created July 8, 2021 22:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chadwithuhc/65b8afa9431795e29f386e1f6a39aae0 to your computer and use it in GitHub Desktop.
Save chadwithuhc/65b8afa9431795e29f386e1f6a39aae0 to your computer and use it in GitHub Desktop.
switch statement vs object lookup
// Q: Which would you prefer to get a mapped value?
// with a `switch` statement
export function getHeaderValue(headerName: string): string {
switch (headerName) {
case "content-type":
return headers.contentType();
case "content-length":
return headers.contentLength();
case "content-md5":
return headers.contentMd5Hash();
case "etag":
return headers.etag();
case "last-modified":
return headers.lastModified();
case "accept-ranges":
return headers.acceptRanges();
case "cache-control":
return headers.cacheControl();
case "content-disposition":
return headers.contentDisposition();
default:
return headerName;
}
}
// with an object lookup
export function getHeaderValue(headerName: string): string {
return {
"content-type": headers.contentType(),
"content-length": headers.contentLength(),
"content-md5": headers.contentMd5Hash(),
"etag": headers.etag(),
"last-modified": headers.lastModified(),
"accept-ranges": headers.acceptRanges(),
"cache-control": headers.cacheControl(),
"content-disposition": headers.contentDisposition()
}[headerName] || headerName;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment