javascript - 通过索引修改数组内的相同对象
问题描述
假设我们有一个数组,并且在该数组内有 2 个相同的对象,例如
var myArray = [];
myArray.push({id:1, errorMsg: null});
myArray.push({id:1, errorMsg: null});
为什么当我尝试通过 index 修改我的属性 errorMsg 时,该更改会影响这两个对象。例如
myArray[0].errorMsg = 'its an error';
解决方案
数组的元素是引用,它们可能指向同一个对象,因此更改一个引用会反映在两个地方
例如
var a = {b:'hi'}
var arr = [a,a]
// if you change
arr[0].b = 'hello'
// both members of array will change
推荐阅读
- angularjs - 删除我在模式上附加的内容
- google-calendar-api - 关于如何通过 google API 在用户自己的日历中复制事件的建议
- angular - 在 Angular 4.3 项目中从 RxJS 5 迁移到 RxJS 6
- sql - DB2 SQL 基于自定义加权从左连接表返回一行
- web-services - OperationsClient.execute(true) 将数据正确发送到 IBM MQ Queue,但抛出axis2异常
- c# - 格式化日志
- codenameone - 代号一:等到给定的布尔值为真
- python - ModuleNotFoundError:没有名为“django”的模块
- asp.net - Request.Url.ToString() 解码异常
- bash - 使用eval时双括号加“-n”