Chrome 控制台错误?

Man*_*han 2 javascript web-inspector google-chrome-devtools ecmascript-6

这个问题没有任何疑问或问题。显然,我似乎在 chrome 控制台上偶然发现了一个错误,

我使用这个代码:

console.log("Before: ", this.selectedScorecard.scorecard_attributes);
let attribute = this.selectedScorecard.scorecard_attributes.find(item => item.id === null || item.id === undefined)

if(attribute) {
   let length = this.selectedScorecard.scorecard_attributes.length;
   this.selectedScorecard.scorecard_attributes.splice(length-1, 1);
   console.log("After: ", this.selectedScorecard.scorecard_attributes);
}
Run Code Online (Sandbox Code Playgroud)

好的,所以属性是一个数组,它最初是一个长度为 2 的数组。现在我从数组中拼接一个项目并在拼接前后打印它的值。

在数组之前的片段中的 chrome 控制台中,它显示 (2) 表示长度为 2,但在数组本身中,它显示长度为 1,并且在“数组的控制台之前”中也只有一项,而事情显然是预期在“After console”中我附上了一张图片以便更好地理解 在此处输入图片说明

我很好奇,有人对此有任何想法吗?有没有人遇到过这个问题,还是只有我一个人注意到了?

Nic*_*wer 5

当 console.log 运行时,chrome 会同步地记录下内容的摘要。该数组有 2 个元素,因此摘要记录了 (2)。Chrome 会保留对该数组的引用,以防您稍后决定要查看更多数据,但它不会克隆整个数组。

稍后,当您单击以展开数组时,它会显示更多详细信息,但会根据展开时的外观而不是日志语句最初发生的时间来显示。由于它只有 1 个元素,这就是它显示的内容。