• luciferofastora@lemmy.zip
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      But what if I don’t want strict comparison? What if my frontend contains a text field for a numeric input and I wanna manually check against each possible valid input value if (input_val == 1) {...} else if (input_val == 2) {...} else if... without having to convert it first or check that it’s actually a number or fix my frontend?

      (I’m sure there are valid use cases for non-strict comparison, I just can’t think of one right now)

      • PrettyFlyForAFatGuy@feddit.uk
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        8 months ago

        why wouldn’t you just convert inline? (Number(input_val) === 2)

        Converting would mean you could use a switch statement with your example rather than an if else ladder

        switch(Number(input_val)) {
          case 1:
            doTheFirstThing();
          break;
          case 2:
            doTheSecondThing();
          break;
          case 3:
            doTheThirdThing();
          break;
        }
        
        • luciferofastora@lemmy.zip
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          8 months ago

          If you’re looking for good code, you missed the point of my comment 😄

          If I was looking for an enumeration of valid inputs, I’d make it a selection box rather than a text field that’s supposed to contain a number and give the selections reasonable names. If I want an integral quantity, I’d use a number input field.

          If I have no control over the frontend, that means I’m writing a backend in JS for a bullshit frontend, and no amount of good coding practice is going to salvage this mess.

          I’m also blessedly far away from WebDev now. I work in Data Analytics and if I ever have to do any of this for a living, something has gone very wrong.

          Converting texts into numbers or dates still haunts me though - fuck text inputs for numbers and dates.