Hacker News new | ask | show | jobs
by XCSme 2266 days ago
Keep going:

    return (cellA > cellB) * 1 + (cellA < cellB) * -1;
More:

    return Math.sign(cellA - cellB);
2 comments

You don't need the * 1 multiplication:

   return (cellA > cellB) - (cellA < cellB);
does work for NaN... rookie mistake, eh
Math.sign trick doesn't work for strings.
That's true, but the default string comparison sometimes isn't that useful, right? I somehow assumed the data is numbers only, rookie mistake :)

    'ana' > 'Bob'
    '2' > '123'
You usually want to clearly define the order or pre-process the strings in some way (trim them, same casing, etc).
Well, you can pass the strings through .toUpperCase() before comparing them.

Or indeed drop the <, > based approach and use: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

Or: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...