【发布时间】:2013-12-23 13:52:07
【问题描述】:
我有一个数组,它一次只有一个非零值以及其他 0 值。例如,它可能是
[0,0,0,0,0,0,0,1234,0,0,0]
// or
[0,0,2823,0,0,0,0,0,0,0,0]
//...
我的问题是,如何使用 javascript 从数组中获取这个非零值。
我知道我可以遍历数组并在找到后立即返回非零值,但我想知道 javascript 是否提供了任何功能来执行此操作?
【问题讨论】:
-
@VisioN 给出了一个很好的答案,但应该注意 something 将遍历数组。该答案中的功能方法很好,因为它“掩盖”了迭代,但在算法上它仍然是一个真正的成本。
-
@Pointy 取决于。函数方法能否比迭代方法更好地向量化? (我认为是反过来,迭代会更快)。
-
@JanDvorak 也许不错,但如果您正在执行传统的复杂性分析,则在无序列表中查找值是 O(n) 操作。
-
@Pointy 正确,但 O(N) 的每时钟周期 16 周期类型仍然比 O(N) 的每 16 周期周期类型好得多 :-)跨度>
-
与例如 C# SortedList 不同,数组必须始终通过蛮力迭代以进行比较。因此,最快的方法是从一端到另一端。
标签: javascript jquery arrays