Javascript 如何更新对象属性?
我有这个阵列:Javascript 如何更新对象属性?,javascript,Javascript,我有这个阵列: 让myArray=[ { 身份证号码:20, 评论:{ 提科尔:“这是一个新的评论” }, 结果:“我的结果” } ]; 现在,我正在尝试更新TICOL属性,方法是首先创建数组的副本,如下所示: 让someArray=[…myArray]; 让finalArray=someArray.map(obj=>{ obj.comments.TICOL=obj.comments.TICOL.replaceAll('new','TEST') }); 但是finalArray总是[未定义]
让myArray=[
{
身份证号码:20,
评论:{
提科尔:“这是一个新的评论”
},
结果:“我的结果”
}
];
现在,我正在尝试更新TICOL属性,方法是首先创建数组的副本,如下所示:
让someArray=[…myArray];
让finalArray=someArray.map(obj=>{
obj.comments.TICOL=obj.comments.TICOL.replaceAll('new','TEST')
});
但是finalArray总是
[未定义]
。谁能告诉我我错过了什么?谢谢您必须在map
方法中返回新值:
让finalArray=someArray.map(obj=>{
obj.comments.TICOL=obj.comments.TICOL.replaceAll('new','TEST');
返回obj;
});
,因此它返回的数组中有未定义的
——函数调用的隐式值。您没有返回任何内容。但为什么要使用地图呢?如果你想变异,使用一种简单的迭代方法,比如foreach,这也是一个重要的观点<代码>[…myArray]仅创建浅拷贝。由于元素是对象,更改其属性将影响两个数组。请注意,[…myArray]
返回浅层副本,第二个数组中的元素只是引用第一个数组中的对象,因此修改第一个数组中的对象也会修改第二个数组中的对象(因为它们是相同的对象)。您的意思是,如何进行深度复制var someArray=JSON.parse(JSON.stringify(myArray))代码>