如何使用forEach循环修改数组内对象的元素?为每个username添加感叹号
用
forEach 给数组内对象的 username 追加感叹号 核心实现
因为数组存储的是对象的引用,forEach 遍历拿到的是原对象的引用而非拷贝,直接修改对象属性会直接同步到原数组,代码非常简洁:
array.forEach(user => { user.username += '!' })
验证效果
执行完成后打印原数组即可看到修改结果,每个对象的 username 都会在原有值后面追加 !:
console.log(array) /* 输出大致结构: [ {username: "john!", ...}, {username: "becky!", ...}, {username: "susy!", ...}, {username: "tyson!", ...} ] */
常见踩坑提醒
- 不要尝试在回调中通过重新赋值整个对象的方式修改内容,比如写
user = { ...user, username: user.username + '!' }。这种写法只会修改回调函数内的局部变量,完全不会改动原数组的内容。必须直接操作对象的属性才能让修改生效。
内容的提问来源于stack exchange,提问作者Zafar Norov
相关产品推荐
相关产品推荐

