javascript - 使用eslint错误更新javascript数组中所有对象的对象值
问题描述
我有一个这样的javascript数组:
const arr=[{name:"Test", sex:"Male"},{name:"Test2",sex:"Female"},
{name:"Test3",sex:"Male"}
]
我想将 arr 中所有对象的名称更改为“common”,如下所示:
const arr=[
{name:"common",
sex:"Male"},
{name:"common",
sex:"Female"},
{name:"common",
sex:"Male"}]
我正在做的是:
arr.map((element) => {
element.name= "common";
return element;
});
使用forEach
:
arr.forEach((element) => {
element.name= "common";
return element;
});
这是有效的,但会发出 eslint 警告,说明:
no-param-reassign error
Assignment to property of function parameter 'element'.
如何在不为此添加跳过的情况下解决此问题?也许通过使用 forEach 或其他方式?任何线索都将受到高度赞赏。
解决方案
您不应该更改函数中的传入参数以防止意外行为。 https://eslint.org/docs/rules/no-param-reassign
您可以更改关闭此规则,也可以将参数重新分配给另一个变量:
arr = arr.map((element) => {
let e = element;
e.name = 'common';
return e;
});
推荐阅读
- php - jQuery AJAX http GET 跨域 - 响应所需的标头
- c - 如何修复此代码(在 c 中使用 char 将二进制转换为十进制)?
- react-native - 从标题中的右侧图标打开模态 - React Navigation
- c# - 在类链中注册类型
- jakarta-ee - 得到错误 WFLYCTL0013: Operation ("deploy") failed because the class org.glassfish.jersey.servlet.ServletContainer can not be found
- apache-pig - 有没有办法计算每年事件的个别实例?
- javascript - 如果用户名已经存在于数据库中,如何禁用表单提交按钮?(通过 js、ajax、php(laravel))
- java - 如何用mybatis的foreach标签映射实体类型的参数?
- git - 从历史记录中删除所有不在工作树中的文件
- python - 反映所有不属于用户但已授予同义词的表