【发布时间】:2019-01-31 09:49:41
【问题描述】:
// Shifting the array and accessing 0
let sum = 0;
while(matrix.length > 0) {
sum += matrix[0][0];
matrix.shift();
}
// direct access
let sum = 0;
for (let i = 0; i < matrix.length; i++) {
sum += matrix[i][0];
}
https://jsperf.com/shift-vs-index-access
移动数组并访问 0 比 在上面的 jsPerf 链接中的给定示例中直接访问。
shift() 不是 O(n) 操作吗?
【问题讨论】:
-
我不确定是否可以保证
.shift将是O(n)。它会在类似数组支持的列表中,但它可以很容易地成为链表中的O(1)。 -
仅供参考,I added a couple of cases 尝试控制
for与while循环。以防万一,但似乎shift即使在for循环中执行,它的速度仍然更快。
标签: javascript arrays firefox v8 shift