From Shadows
  • Communities
  • Create Post
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
philnash@programming.dev to JavaScript@programming.devEnglish · 2 years ago

Stop nesting ternaries in JavaScript

www.sonarsource.com

external-link
message-square
12
link
fedilink
0
external-link

Stop nesting ternaries in JavaScript

www.sonarsource.com

philnash@programming.dev to JavaScript@programming.devEnglish · 2 years ago
message-square
12
link
fedilink
Nesting ternary operators makes code more complex and less clear. Let's investigate other ways to write conditional expressions.
  • JakenVeina@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    Until JS supports switch expressions, nested ternaries will continue to be the most effective way to write multi-state conditionals.

    Also, stop using linting tools that prioritize consistency over human readability, and then complaining that the code they generate is not easily-readable by humans.

    • CameronDev@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch - hasnt it had this forever? Or are you refering to something else?

      • spartanatreyu@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        Pretty sure they meant match as in pattern matching, not switch as in switch/case/break.

        You can see the proposal here: https://github.com/tc39/proposal-pattern-matching

        • JakenVeina@lemm.ee
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          2 years ago

          Nah, I meant switch, as that’s what it’s called in C#-land. See above.

          That proposal for matching looks interesting, but not quite the same, no.

          • spartanatreyu@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            2 years ago

            Are you sure?

            Your C# example:

            var output = input switch
            {
                null    => "Null",
                0       => "Zero",
                > 0     => "Positive",
                _       => "Negative"
            };
            

            JS proposal for match:

            const output = match input {
                when null:    "Null";
                when 0:       "Zero";
                if input > 0: "Positive";
                default:      "Negative";
            }
            

JavaScript@programming.dev

javascript@programming.dev

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !javascript@programming.dev
Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 1 user / day
  • 3 users / week
  • 57 users / month
  • 281 users / 6 months
  • 1 local subscriber
  • 2.44K subscribers
  • 175 Posts
  • 245 Comments
  • Modlog
  • mods:
  • Erlingur@programming.dev
  • Ategon@programming.dev
  • nick@programming.dev
  • BE: 0.19.12
  • Modlog
  • Instances
  • Docs
  • Code
  • join-lemmy.org