gpt4 book ai didi

javascript - 覆盖 Javascript 数组中的值不会与控制台输出一致

转载 作者:行者123 更新时间:2023-12-04 10:37:50 25 4
gpt4 key购买 nike

这是我在项目中处理的对象数组的简化版本 -

let test = [];
test['12/1/2019'] = {k1: 25, k2: 'hello'};
test['1/1/2020'] = {k1: 14, k2: 'bonjour'};
console.log(test);
test['12/1/2019'] = {k1: 16, k2: 'ciao'};
test['1/1/2020'] = {k1: 10, k2: 'good day'};

由于 console.log(test);,我希望控制台输出显示这一点。在覆盖原始值的代码行之前:
enter image description here
但是,实际的控制台输出是这样的:
enter image description here

为什么会这样?

最佳答案

这是因为 JavaScript 引擎批量运行每个代码。

从代码上看,是console.log在将新值设置到数组之前调用,但实际上,当前迭代中的所有命令都在 console.log 之前先运行在下一次迭代中运行。

因为test是对用于存储 test 的值的内存位置的引用数组,它现在代表更新后的值。

这同样适用于对象。

关于javascript - 覆盖 Javascript 数组中的值不会与控制台输出一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60084024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com