为什么 console.log 显示不正确的对象值?

2023-12-06

我不明白为什么console.log显示d1包含[100,200,300]在我介绍这些数字之前。常规的for loop显示内部结构d1虽然正确。有人可以解释一下这个行为/错误吗console.log在谷歌浏览器中?https://jsfiddle.net/ZSvyt/

var container = {};
container["0"] = [10, 20, 30];
var d1 = container;

console.log('before console.log');
console.log(d1); // <--- IT DISPLAYS [100, 200, 300]. WHY?

// before for loop
console.log('before for loop');
for (var i = 0; i < d1["0"].length; i++) {
    console.log(d1["0"][i]);
}

container["0"] = [100, 200, 300];

console.log('after console.log');
console.log(d1);

// after for loop
console.log('after for loop');
for (var i = 0; i < d1["0"].length; i++) {
    console.log(d1["0"][i]);
}

Output:

before console.log
Object {
    0: Array[3]
}
0: Array[3] 
0: 100
1: 200
2: 300 

before for loop
10
20
30

after console.log
Object {
    0: Array[3]
}
0: Array[3] 
0: 100
1: 200
2: 300

after for loop
100
200
300

那是因为控制台中的内容是dt不是副本。

您可以复制该对象并记录它(代码来自这个问题).

或者您可以使用记录代表它的字符串JSON.stringify.

console.log( JSON.stringify(dt) );将其打印为字符串。

另外,如果您正在使用lodash那么你可以使用console.log(_.cloneDeep(dt))克隆并记录当时对象内的正确值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 console.log 显示不正确的对象值? 的相关文章

随机推荐

  • 在 PHP 或 MySQL 中查找两个日期之间的差异

    此查询不返回 1 月份的记录 但返回 2 月份的记录 SELECT EventAsstCharged CustomerName EventID EventName EventExpectedCharges EventActuallyChar
  • 通过 PayPal(一次)支付多件商品

    我有一个产品列表 我想在其中添加 立即付款 按钮 以便我可以允许我的客户通过 Paypal 付款 我已经浏览了文档 但找不到如何执行此操作 我可以添加多个项目 但这并不方便 因为我已经有了要处理的项目列表 我还需要结账流程来逐项列出订单 因
  • 如何处理上溢和下溢?

    我是 Matlab 新手 试图弄清楚当答案实际上在范围内时如何处理溢出和下溢算术 例如 x 2e 160 x x x which returns inf an overflow x sqrt x which is in the range
  • 来自 javascript 对象的 js-ctypes

    我正在开发一个 Firefox 扩展 它接收二进制图像数组缓冲区 of uint8 t 在我的扩展中 我加载了一个 dll 文件 该文件具有我需要在收到的图像上使用的函数 该函数需要一个ctype uint8 t ptr参数并返回一个cty
  • Entity Framework 4 SaveChanges 内存不足

    我有一个包含超过 50 万条记录的表 每条记录包含大约 60 个字段 但我们只对其中三个进行更改 我们根据计算和查找对每个实体进行小修改 显然我无法依次更新每个实体然后SaveChanges因为那会花费太长时间 所以在整个过程结束时我调用S
  • 如何覆盖Titan数据库中的顶点ID?

    我正在使用生成对象的框架Node并且他们已经分配了一个 id 现在它们需要转换为具有框架中控制的相同ID的Titan顶点 通过访问node id public long addNode Node node TitanVertex verte
  • 何时使用抽象类作为类型

    因此 在尝试理解抽象类时 我仍然对一件事感到困惑 你什么时候想要声明其抽象类的对象类型 例如 public abstract class GameObject public abstract void draw public static
  • 根据 Pandas 中的条件添加行

    我有一个 pandas 数据框 如下所示 Index Year Month Fruit Count 0 2021 03 Apple 2 1 2021 03 Orange 3 2 2021 03 Mango 4 3 2021 04 Apple
  • 线程在notifyall()之后没有返回

    我是 Java 多线程的新手 我做了一些研究 阅读了教程 并做了测试 但我仍然遇到这个问题 基本上 我正在设置游戏的骨架 我想要主活动类 一个包含方法的线程类 执行缓慢的操作 读取文件并将内容解压到缓冲区 并有一个线程是游戏循环对 UI 操
  • 未捕获的语法错误:main.546ac9e6.chunk.js:1 中出现意外的标记“<”[已关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我们有这个使用 create react app 构建并部署的 Web 应用程序 现在我们在控制台中收到此错误 Uncaught SyntaxError Unexpected token
  • PHP 会话变量未定义

    我有这个会话变量 当用户使用以下命令登录时 我试图将其设置为访问级别 accessquery mysql query SELECT roleid FROM person WHERE email email access mysql fetc
  • 如何在 JavaScript 中判断日期是否是周末

    如果我有一个约会要参加某个活动 我如何判断这是否是周末 var dayOfWeek yourDateObject getDay var isWeekend dayOfWeek 6 dayOfWeek 0 6 Saturday 0 Sunda
  • Facebook SDK didLoad:结果 = null

    我有一个 Facebook 单例并请求它来获取个人资料图片 FacebookScorer sharedInstance facebook requestWithGraphPath me picture type normal andDele
  • 在有界泛型类型上使用 Partial 时出现问题

    function f
  • 如何按2个数据属性对div进行排序?

    如何修改我的代码 以便它同时按数据状态和数据顺序排序 即期望的结果是1 2 3 4 我需要支持IE document body on click sortthem function var divList sortme divList so
  • 静态嵌套类可以访问外部类的私有构造函数

    It is stated that 静态嵌套类与其外部的实例成员交互 类 和其他类 就像任何其他顶级类一样 在 结果 静态嵌套类在行为上是一个顶级类 为了打包方便 已经嵌套在另一个顶级类中 那么如何解释这个静态嵌套类可以访问其封闭类的私有构
  • 如何在jmeter中使用jsr 223预处理器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有人请帮助我如何使用脚本编写jsr223预处理器在Jmeter和一些examples 任何最好的网站tutorial对于相同的 提前致谢 SIJO
  • Python 3.2 中 __hash__ 是如何实现的?

    我想使自定义对象可哈希 通过酸洗 我能找到 hash Python 2 x 的算法 参见下面的代码 但显然differs来自 Python 3 2 的哈希 我想知道为什么 有谁知道如何 hash 在Python 3 2 中实现 Versio
  • 我如何获得通用参数的类别[重复]

    这个问题在这里已经有答案了 可能的重复 使用反射获取java中泛型参数的类型 如何获取泛型的类 我如何获取通用参数的类 public
  • 为什么 console.log 显示不正确的对象值?

    我不明白为什么console log显示d1包含 100 200 300 在我介绍这些数字之前 常规的for loop显示内部结构d1虽然正确 有人可以解释一下这个行为 错误吗console log在谷歌浏览器中 https jsfiddl