• JakenVeina@lemm.ee
    ·
    1 year 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
      ·
      1 year 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
        ·
        1 year 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

        • snowe@programming.dev
          ·
          1 year ago

          they also said switch expressions, which indicates they want the switch statement to be settable directly to a variable with whatever the return type of the switch is.

        • JakenVeina@lemm.ee
          ·
          edit-2
          1 year 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
            ·
            edit-2
            1 year 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";
            }
            
      • JakenVeina@lemm.ee
        ·
        edit-2
        1 year ago

        Yeah, a switch expression is different than a switch statement. I'm not actually sure how many languages actually have them, but in C# its...

        var output = input switch
        {
            null    => "Null",
            0       => "Zero",
            > 0     => "Positive",
            _       => "Negative"
        };
        
  • jadero@programming.dev
    ·
    1 year ago

    Or anywhere for that matter. Have you got nested IF()s in Excel? For crying out loud, pop into VBA and write it up as a custom function like a human being.

      • jadero@programming.dev
        ·
        1 year ago

        Oh, I didn't know that Excel could do JS. I haven't touched it since I got out of the field a decade or so ago.

        One of the things I did was quite a bit of Excel consulting and training. I remember the joy of trying to decode massive formula cells, especially when there were nested IF()s. My rule of thumb was that anything with more than three functions in one formula got converted to a custom function, even if it didn't have general utility.

        I found that anyone who could construct and understand those massive formulas were generally capable of dealing with the equivalent VBA with a bit of training. Also, it was generally true that if they couldn't handle the relevant VBA, they were in no position to deal with massive formulas anyway.