假设我有一个包含 5 个人名的列表
让 listNames = [Sam、Ash、Moe、Billy、Kenzi]
并且我希望每个名称都具有 doneHomeWork
和 lazy
using class 的属性
class Person {
constructor() {
this.doneHomeWork = 0
this.lazy = false
}
}
而不是这样分配每个名称:
const Sam = new Person()
const Ash = new Person()
const Moe = new Person()
const Billy = new Person()
const Kenzi = new Person()
我想做这个
listNames.forEach(name => {
name = new Person()
})
但是,在我的 ESLint 中它给我一个错误
Assignment to function parameter 'name' no-param-reassign
这看起来微不足道,但出于某种原因,我无法重构它。
最佳答案
问题是名称变量是用于在循环内循环的变量。
您正在循环的第一次迭代中更改此值。这就是您的错误 Assignment to function parameter 'name' no-param-reassign
的原因。
然后您尝试使用动态名称作为变量名称。如果你想这样做,方法是使用括号表示法,所以你可以这样做:
class Person {
constructor() {
this.doneHomeWork = 0
this.lazy = false
}
}
let persons = [];
let listNames = ['Sam', 'Ash', 'Moe', 'Billy', 'Kenzi'];
correctListNames.forEach(name => {
persons[name] = new Person()
})
console.log(persons);
关于javascript - ES6 类 - 映射变量数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43744785/