gpt4 book ai didi

javascript - 改变对象中的值

转载 作者:行者123 更新时间:2023-12-03 11:47:04 25 4
gpt4 key购买 nike

编写 Javascript,我有一个具有以下属性的对象/类:

this.option1Active = null;
this.option2Active = null;
this.option3Active = null;
this.option4Active = null;

我想根据参数 genre 将其中一个属性设置为 true

function selectGenre (genre) {
if (genre === 'option1') {
this.option1Active = true;
}

else if (genre === 'option2') {
this.option2Active = true;
}

else if (genre === 'option3') {
this.option3Active = true;
}

else if (genre === 'option4') {
this.option4Active = true;
}
}

尽管编写 if 语句并不是一个可持续的解决方案。我想做这样的事情:

function selectGenre (genre) {
var options = {
'option1': this.option1Active,
'option2': this.option2Active,
'option3': this.option3Active,
'option4': this.option4Active
};

options[genre] = true;
}

但这只是将 options[index] 设置为 true,而不是例如this.option1Active。有没有办法更改对象的键指向的引用?

如果没有,我们非常感谢其他重构 if 语句的方法。

最佳答案

您可以使用字符串作为属性名称来设置 this

var genreOptions = {
'option1': 'option1Active',
'option2': 'option2Active',
'option3': 'option3Active',
'option4': 'option4Active'
};

function selectGenre (genre) {
this[genreOptions[genre]] = true;
}

关于javascript - 改变对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26005136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com