Angular中无需循环按条件更新对象数组Status属性
解决方案
可以利用数组的map()方法实现需求,它会自动遍历数组并返回新数组,无需手动编写for/while这类循环语句:
this.Service.getUser(payload).subscribe(result => { this.List = result['response'].map(item => ({ ...item, Status: item.Status ?? 'Active' })); });
代码说明
map()方法遍历原数组每一项,执行回调函数后返回全新数组,不会修改原数组内容- 扩展运算符
...item复制原对象的所有属性,避免直接修改原对象引发副作用 ??是空值合并运算符,仅当item.Status为null或undefined时,将其替换为'Active',原有有效值会保留
如果你的运行环境不支持空值合并运算符,可改用逻辑或运算符||替代(注意:若Status可能为空字符串等假值,||会一并替换,需根据实际业务场景选择):
Status: item.Status || 'Active'
内容的提问来源于stack exchange,提问作者user3653474
相关产品推荐
相关产品推荐

