Хорошо, так что вы ищете первое истинное значение o, идущее в порядке убывания, и как только вы найдете его, вы ищете первое истинное значение r, имя которого <=
это значение o.Не найдя ничего, вы хотите вернуть значение omarkup
.
Поскольку у вас есть только несколько o-значений и r-значений, ваш код, каким бы «интересным» он ни казался, выглядит как минимумчисло возможных тестов.
Я не вижу, как бы помогли переключатели или хэши, так как вы, похоже, ищете в порядке убывания первое истинное значение .... Из-за этого я неПонятно, почему разделение также может повысить производительность.Оставьте все как есть или, если вы предпочитаете удобочитаемость (как это делают многие программисты), создайте объекты, для которых 1281, 1025 и т. Д. Являются полями .
Кроме того, обычно беспокоятся о производительности.что-то, что вы делаете, когда сталкиваетесь с операцией, которая будет выполняться много-много раз.Это тот случай, здесь?Это похоже на то, что вы выполняете только один раз, при условии, что значения o и r не меняются.(Только к вашему сведению.)
ADDENDUM
На основании комментария, добавленного к вопросу выше, это выглядит как операция, которую вы хотели бы хотели бывыполнить несколько раз.В этом случае, вероятно, можно самостоятельно оптимизировать уровень JavaScript, хотя современные компиляторы довольно хороши.Наибольшую обеспокоенность с точки зрения проверки кода будет то, что значения 1281, 1025, 961, 941 и т. Д. Выкладываются вручную и являются частью исходного кода, поэтому обслуживание, например добавление новых значений размера здесь,хорошо, хитрый и подверженный ошибкам.Тем не менее, основываясь на том, что вы показали, я думаю, можно с уверенностью сказать, что ваш JavaScript в том виде, в котором он написан, является наилучшим доступным, если использовать наивный компилятор.Вы всегда можете воспользоваться реализацией, которая определяет эти значения ровно один раз, а затем профилировать ее, чтобы увидеть, достаточно ли она быстра.Например, вы можете определить массив, такой как
var sizes = [1281,1025,961,641,481,320,0]
и выполнить цикл, но да, в таких реализациях есть издержки.
Одна из проблем, которая может вам здесь помочь, - это тщательно продумать, чтоможно и нельзя кэшировать.Это может помочь ускорить будущие исполнения этого кода.