5

在当前的 Google Chrome(版本 22.0.1229.79,在带有 Mountain Lion 的 iMac 上)上,以下代码

var arr = [1, 3, 5];
console.log(arr);

delete arr[1];
console.log(arr);

console.log(arr.pop());
console.log(arr);

将会呈现

[1, undefined × 2] 
[1, undefined × 2] 
5 
[1, undefined × 1] 

还有其他情况导致 Firefox 的行为也类似。它们是 Chrome 和 Firefox 上的错误 - 但 Firefox 和 Chrome 都容易受到类似错误的影响似乎很奇怪 - 还是数组删除和的某些行为console.log?据说,console.log不应该在单独的线程上运行。

4

2 回答 2

1

在 Firefox 7.0 中:

var arr = [1,3,5];

console.log(删除 arr[1]); //将显示 [1, undefined, 5]

在我看来,这是一个正确的行为 =) 所以可能它只是一个错误。

于 2012-10-07T08:16:29.890 回答
1

这是由于排队console.log处理,所以打印延迟,并显示更高版本的对象或数组:Chrome 的 JavaScript 控制台是否懒于评估数组?

我的答案有 5 个解决方案,JSON.stringify()是最好的一个。

于 2012-10-09T16:06:14.420 回答