javascript - 更改第一个对象中的值会导致第二个对象更改
问题描述
我有一个对象数组:
const test = new Array(2).fill({ a: 1, b: 2 });
test[0].a = 3;
我只想在第一个对象中重新分配“a”,但是当我使用上面的代码时,两个“a”都会被重新分配。和输出:
[ { a: 3, b: 2 }, { a: 3, b: 2 } ]
解决方案
如数组填充方法的文档中所述
如果第一个参数是一个对象,则数组中的每个槽都将引用该对象。
一个可能的解决方案:
const test = Array.from({ length: 2 }).map(() => ({ a: 1, b: 2 }));
test[0].a = 3;
console.log(test);
推荐阅读
- r - 基于多个其他列对 R 中的多个列求和
- java - 在没有连接的情况下使用 Hibernate 4 生成 DDL
- mysql - 如何优化这个查询?慢查询
- android - 约束布局中缺少约束
- c++ - 正在移动 std::bitset
超过 N 个职位未定义的行为? - ios - 反应本机套接字未在发布版本(IOS)中初始化
- python - 使用 numpy.max/ numpy.min 作为时间戳值
- apache-spark - 在一个 Spark 作业中可以有多个 Spark 结构化流式写入查询(90+)吗?
- c - AES256 hex_print 到 hex_tofile 使用 enc_out
- php - hasMany 模型关系返回空数组。lLaravel 框架 5.5.40