- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
执行此操作的最快方法是什么?左边括号中的变量返回 bool 值,它们表示窗口大小范围。 (例如,o1281
为 1281 及以上屏幕返回 true
,o1025
为 1025 及以上屏幕返回 true
,等等。)
markup = // ternary triangle (the rows set the markup priority at each band)
( o1281 ) ? r1281 || r1025 || r961 || r641 || r481 || r320 || r0 || omarkup:
( o1025 ) ? r1025 || r961 || r641 || r481 || r320 || r0 || omarkup:
( o961 ) ? r961 || r641 || r481 || r320 || r0 || omarkup:
( o641 ) ? r641 || r481 || r320 || r0 || omarkup:
( o481 ) ? r481 || r320 || r0 || omarkup:
( o320 ) ? r320 || r0 || omarkup:
( o0 ) ? r0 || omarkup:
omarkup;
我在想也许可以根据中间 (o641
) 条件将它分成 2 个范围。
值得吗?
最佳答案
好吧,你正在做的是寻找第一个以降序排列的真实 o 值,一旦你找到一个,你正在寻找第一个名为 <=
的真实 r 值。这个o值。找不到,您希望返回值 omarkup
.
因为您只有几个 o 值和 r 值,所以您的代码尽管可能很“有趣”,但似乎使测试数量最少。
我看不出开关或散列有何帮助,因为您似乎确实在按降序搜索第一个真实值……因此,我也不明白为什么拆分会有助于提高性能。保持原样,或者,如果您更喜欢可读性(正如许多程序员所做的那样),请创建对象,其中 1281、1025 等是字段。
此外,担心性能通常是人们在面对将执行很多次的操作时所做的事情。这是这里的情况吗?假设 o 和 r 值不变,这看起来像是您只会执行一次的操作。 (仅供引用。)
附录
根据添加到上述问题的评论,它看起来像是您想要多次执行的操作。在这种情况下,尽管现代编译器非常好,但在 JavaScript 级别进行 self 优化可能没问题。从代码审查的 Angular 来看,最大的担忧是值 1281、1025、961、941 等是手动布局的并且是源代码的一部分,因此维护(例如在此处添加新的大小值)是,好吧,棘手且容易出错。就是说,根据您所展示的内容,我认为可以肯定地说您编写的 JavaScript 是给定天真的编译器的最佳可获得性。您始终可以寻找一个只定义一次这些值的实现,然后对其进行分析以查看它是否“足够快”。例如,您可以定义一个数组,例如
var sizes = [1281,1025,961,641,481,320,0]
并循环,但是,是的,在这样的实现中有开销。
这里可能对您有帮助的一个问题是仔细考虑什么可以缓存,什么不能缓存。这有助于加快此代码的 future 执行速度。
关于javascript - 执行此操作的最快方法?三元运算符?转变?大批?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382291/
在尝试为 ContT monad 转换器建立一些直觉时,我(也许并不奇怪)发现自己很困惑。问题在于 shiftT 操作,它似乎没有做任何有用的事情。 首先是一个简单的例子,说明如何使用它 shiftT
我有 Item 1 Item 2 我想要切换 var elements = document.getElementsByName('R
执行此操作的最快方法是什么?左边括号中的变量返回 bool 值,它们表示窗口大小范围。 (例如,o1281 为 1281 及以上屏幕返回 true,o1025 为 1025 及以上屏幕返回 true,
我对编程还很陌生,但我的任务是维护一些由前员工创建的应用程序。我有一个 ?: 声明现在需要处理的不仅仅是真或假声明,但我不确定如何去做。有问题的代码是: MailDomainContext m
为什么 GMT-0400 在 1989 年之前转变为 GMT-0500? > new Date('1989-04-02T23:01:14.52Z') Sun Apr 02 1989 19:01:14
我们有一堆代理对(或 2 字节 utf8?)字符,例如 ��,这是作为 2 个字符存储为 UTF8 的祈祷 watch 情符号。在浏览器中呈现时,此字符串呈现为两个 ?? 例子:�� 我需要使用 ph
我知道我可以将字符串格式的 unixTime 转换为本地时间的毫秒val currentTimeMillis = serverTimeDateFormat.parse(iso8601).time 我想
我是一名优秀的程序员,十分优秀!