javascript - new Array() 覆盖每个对象
问题描述
我想使用 new Array() 在数组中创建一定数量的对象。
这可行,但是一旦我更新数组中的一个对象,它也会更新所有其他对象。
const ar = Array(5).fill({})
console.log(ar)
// will log [{}, {}, {}, {}, {}]
ar[0].hello = 'hi'
console.log(ar)
// will log [{ hello: 'hi' }, { hello: 'hi' }, { hello: 'hi' }, { hello: 'hi' }, { hello: 'hi' }]
预期的结果是这样的:
[{ 你好' }, {}, {}, {}, {}]
解决方案
推荐阅读
- javascript - jQuery - 图像 src 字符被符号替换
- ansible - 如果 md5 和文件大小不同,可以复制文件和文件夹
- sql-server - 在 docker 中运行 MS SQL 服务器拒绝连接
- arrays - 调用该函数会导致错误;这是什么解释?
- javascript - 无法从 SvelteKit 中的 API 获取数据
- c++ - Clang++ SCOPED_CAPABILITY 产生“警告:释放未持有的互斥锁”
- google-bigquery - 查询中的 BigQuery 默认节点(FROM 子句)
- discord.js - 无法在嵌入标题中使用自定义表情符号
- google-apps-script - 添加谷歌表格后,警报应用程序脚本不起作用
- javascript - 从多选中清除焦点上的搜索值 - 多选反应下拉(React JS)