Обычно при сортировке вы делаете:
if (x < y) return -1
else if (x > y) return 1
else return 0
или
return ((x > y) ? 1 : ((x < y)) ? -1 : 0))
Два сравнения того, что кажется, можно выполнить только с одним. В сборке все, что вам нужно сделать, это вычесть оба в регистр, проверить, если отрицательно, проверить, если ноль. Проблема в JavaScript, если мы должны были вычесть:
var sub = (x - y);
return (sub == 0 ? 0 : ((sub < 0) ? -1 : 1))
В результате будет выполнено еще больше кода.
Итак, несколько вопросов:
- Есть ли способ упростить или ускорить это в javascript?
- Могут ли скомпилированные интерпретаторы javascript, такие как chrome, оптимизировать такое сравнение?
- А как насчет других языков?