如何修改对象中的嵌套属性rightAlignment且不重写其余内容?
解决方案
单个对象场景
你之前用Object.assign失败是因为直接替换了整个menuSettings对象,导致原有的colours等属性被覆盖。要只修改rightAlignment,直接访问嵌套属性赋值最简洁:
myObject.menuSettings.rightAlignment = false;
如果担心menuSettings不存在导致报错,可以加个存在性判断:
if (myObject.menuSettings) { myObject.menuSettings.rightAlignment = false; }
数组场景(你的实际需求)
由于要处理数组中的多个对象,且menuSettings为可选属性,遍历数组并判断属性存在后修改即可,用数组的forEach方法能简化遍历逻辑:
this.myObjects.forEach(obj => { if (obj.menuSettings) { obj.menuSettings.rightAlignment = false; } });
(注:你提到的最终方案里设为true,如果实际需要改成false替换上述代码对应值即可)
内容的提问来源于stack exchange,提问作者Pigeonman
相关产品推荐
相关产品推荐

