javascript - 如何避免 JavaScript 中的 JSON 指针不使用 json.stringify?
问题描述
我想将员工复制到新员工,而不是指向老员工。
我尝试使用:
newEmployees.assign([{}].employees); <br>
newEmployees = [{...employees}]; <br>
他们指着一位老员工。
const employees = [
{
"id": "1001",
"firstname": "Luke",
"lastname": "Skywalker",
"company": "Walt Disney",
"salary": "40000"
},
{
"id": "1002",
"firstname": "Tony",
"lastname": "Stark",
"company": "Marvel",
"salary": "1000000"
},
{
"id": "1003",
"firstname": "Somchai",
"lastname": "Jaidee",
"company": "Love2work",
"salary": "20000"
},
{
"id": "1004",
"firstname": "Monkey D",
"lastname": "Luffee",
"company": "One Piece",
"salary": "9000000"
}
];
let newEmployees = [{}];
newEmployees[0] = employees[3]; // assign
employees[3]['firstname'] = 'Arhus'; // change old employees
console.log(newEmployees); //firstname: 'Arhus' - shows employees content
太感谢了。
解决方案
只需在分配这样的值时使用传播
const employees = [
{
"id": "1001",
"firstname": "Luke",
"lastname": "Skywalker",
"company": "Walt Disney",
"salary": "40000"
},
{
"id": "1002",
"firstname": "Tony",
"lastname": "Stark",
"company": "Marvel",
"salary": "1000000"
},
{
"id": "1003",
"firstname": "Somchai",
"lastname": "Jaidee",
"company": "Love2work",
"salary": "20000"
},
{
"id": "1004",
"firstname": "Monkey D",
"lastname": "Luffee",
"company": "One Piece",
"salary": "9000000"
}
];
let newEmployees = [{}];
newEmployees[0] = { ...employees[3] };
employees[3]['firstname'] = 'Arhus'; // change employee
console.log(newEmployees); //firstname is still Monkey D
推荐阅读
- linux - AWK 比较两个文件中的两列输出匹配行 - 匹配中缺少行
- kubernetes - 用于服务限制的 Kubernetes 网络策略
- powershell - 使用 Powershell 按月过滤 CSV 文件
- php - Errno 13 php调用python脚本时权限被拒绝
- asp.net-mvc - MVC:具有 ModelState.Isvalid 和 DbUpdateConcurrencyException 的控制器或存储库
- excel - 使用 Excel VBA 缩放图片
- python - Selenium - 双击选项列表中的项目
- python - 在 Ipython 中使用 Pylint (Jupyter-Notebook)
- python - 使用 Python 获取 Windows 组的成员
- smallbasic - 每个随机数在数组中只有一次