【发布时间】:2018-05-20 12:26:18
【问题描述】:
我想了解你们如何避免eslint warning "Assignment to property of function parameter 'elem'"。我知道这是一个很好的模式,不要更改函数参数值。这使我们的代码保持解耦并具有高维护性。但是,在某些情况下,我遇到了以下情况。 我需要检索具有特定类的所有元素,然后更改其显示样式属性。 这是我的代码:
const setDisplayStyleToElementsArray = (arr, display) => {
arr.map((elem) => {
elem.style.display = display;
return elem;
});
};
const elements = document.getElementsByClassName('.myClass');
const myFields = [].slice.call(elements, 0);
setDisplayStyleToElementsArray(myFields, 'block');
在这种情况下,我将更改所有 .myClass 元素的属性“块”。如何做到这一点没有副作用?这样做的正确方法是什么? 提前致谢
【问题讨论】:
-
更干净的方式:
let myFields = [... elements] -
只是一个观察:使用
forEach而不是map(因为您没有使用返回的数组)。 -
很想知道您为什么使用
.map(),但忽略了它正在创建的新数组。这是尝试解决 ESLint 警告吗? -
Eslint 默认设置属性
/*eslint no-param-reassign: ["error", { "props": false }]*/。但不是airbnb风格指南。 @rockstar -
这是展开操作符对集合进行迭代的方式。其他选项是
Array.from(elements),它也比 ES5 方式更干净。
标签: javascript eslint eslint-config-airbnb