当前位置: 首页 > article >正文

`console.log` 打印一个对象并且得到 `“object Object“`

文章目录

  • 发现宝藏
  • 1. 使用 console.log 直接打印对象
  • 2. 使用 JSON.stringify
  • 3. 检查对象的内容
  • 示例代码
  • 总结

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

当你在 JavaScript 或 TypeScript 中尝试通过 console.log 打印一个对象并且得到 "object Object",这是因为你将对象转换为字符串时,使用了连接运算符(+)。JavaScript 在这种情况下会调用对象的 toString 方法,这通常会返回 [object Object]。如果你想查看对象的详细内容,可以使用以下几种方法:

1. 使用 console.log 直接打印对象

console.log 能够正确显示对象的内容,因此可以直接将对象传递给 console.log 而不是将其转换为字符串:

const handleSave = (e: any) => {
    console.log('item copy:', itemCopy);
    console.log('item:', item);
};

2. 使用 JSON.stringify

如果你想将对象转换为字符串并打印,可以使用 JSON.stringify。这将会把对象转换为 JSON 字符串,便于查看其内容:

const handleSave = (e: any) => {
    console.log('item copy:', JSON.stringify(itemCopy, null, 2));
    console.log('item:', JSON.stringify(item, null, 2));
};
  • nullJSON.stringify 的 replacer 参数,通常可以保持为 null
  • 2 是用于缩进的空格数,使 JSON 字符串更具可读性。

3. 检查对象的内容

确保 itemCopyitem 是对象且定义了 toString 方法。如果你发现它们的内容在打印时没有按照预期显示,请确保它们是有效的对象而不是其他类型。

示例代码

假设 itemitemCopy 是以下结构的对象:

interface QuestionConfiguration {
    id: number;
    name: string;
    defaultFlag?: boolean;
}

const item: QuestionConfiguration = {
    id: 1,
    name: 'Sample Question',
    defaultFlag: true
};

const [itemCopy, setItemCopy] = useState<QuestionConfiguration | undefined>(item);
const [isChecked, setIsChecked] = useState(getDefault);

const handleSave = (e: any) => {
    console.log('item copy:', JSON.stringify(itemCopy, null, 2));
    console.log('item:', JSON.stringify(item, null, 2));
};

handleSave 函数中,itemCopyitem 将会被清晰地打印到控制台中,便于你调试和检查对象的内容。

总结

  • 避免将对象直接与字符串连接,因为这会调用 toString 方法,返回 [object Object]
  • 使用 console.log 直接打印对象使用 JSON.stringify 来更清晰地查看对象的内容。

http://www.kler.cn/a/280776.html

相关文章:

  • Spark MLlib 特征工程系列—特征转换SQLTransformer
  • websocket的介绍及springBoot集成示例
  • 【Linux】进程池实例
  • [Jsprit]Jsprit学习笔记-初见Jsprit-doc
  • 约 数个数
  • Zabbix和Prometheus
  • 【数据结构4】树的实例-模拟文件系统、二叉树的遍历(先序遍历、中序遍历、后序遍历、层次遍历)
  • aclStream流处理多路并发Pipeline框架中 视频解码 代码调用流程整理、类的层次关系整理、回调函数赋值和调用流程整理
  • 2024.8.24 Python,链表异常断裂问题,双链表的建立问题,全排列中的引用机制与copy的使用,最大子数组和
  • 定制开发AI智能名片商城小程序:重塑品牌曝光的创新推手
  • Android 退出app方式(回忆录)
  • 【C++ STL哈希容器】unordered_set 无序集合
  • react 中的useState useEffect
  • Vue:组件化开发
  • K8S 无状态应用有状态应用
  • 【大模型】llama系列模型基础
  • 【Python机器学习】NLP概述——深度处理
  • VBA之正则表达式(47)-- 快速将公式转换为静态值计算
  • 免杀笔记 ---> CS特性角度看Veh免杀
  • 大数据技术之Flume应用案例(2)