• ImplyingImplications@lemmy.ca
    link
    fedilink
    arrow-up
    8
    ·
    2 days ago

    That would be isPositive.

    Without using the modulo operator you’d essentially have to reimplement it. Divide the number by 2 and round down. Multiply that by 2 and then subtract it from the original number.

    isEven(10) results in 10-10==0 (true) whereas isEven(13) results in 13-12==0 (false).

    function isEven(n){
      n = Math.abs(n)
      return (n - (Math.floor(n/2) * 2)) == 0
    }
    
    • dream_weasel@sh.itjust.works
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      1 day ago

      Minor simplification: this works even without taking absolute value first of you use fix instead of floor.

      Edit: I don’t know if fix is in the stock math library on second thought…

    • Kraiden@kbin.earth
      link
      fedilink
      arrow-up
      5
      ·
      2 days ago

      Yep! I’m wrong. Pretty embarrassing!

      That’s a nice solution though! Gonna have to try and remember that one!