• luciferofastora@lemmy.zip
    link
    fedilink
    arrow-up
    3
    arrow-down
    2
    ·
    2 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
      2 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
        arrow-down
        2
        ·
        edit-2
        2 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.