Javascript 切换对象属性VueJS?

Javascript 切换对象属性VueJS?,javascript,vue.js,vuetify.js,Javascript,Vue.js,Vuetify.js,我有一个数组cars,它返回我的名字,每个名字都有一个属性starred,我想前后切换true和false。然而,我希望一次只为其中一个设置starred。因此,我创建了一个方法setStarred,在该方法中,我使用map将其他方法设置为false。然而,我能将星号设置为真,但我不能将其设置为假 请检查这个 这是一个有效的例子 newvue({ el:“应用程序”, 数据(){ 返回{ 汽车:[{ 名称:“丰田”, 主演:假 }, { 名称:“宝马”, 主演:假 }, { 姓名:“福特”,

我有一个数组
cars
,它返回我的名字,每个名字都有一个属性
starred
,我想前后切换true和false。然而,我希望一次只为其中一个设置starred。因此,我创建了一个方法
setStarred
,在该方法中,我使用
map
将其他方法设置为false。然而,我能将星号设置为真,但我不能将其设置为假

请检查这个

这是一个有效的例子

newvue({
el:“应用程序”,
数据(){
返回{
汽车:[{
名称:“丰田”,
主演:假
},
{
名称:“宝马”,
主演:假
},
{
姓名:“福特”,
主演:假
}
]
};
},
方法:{
设置焦油量(指数){
此.cars.map((i)=>{
i、 星号=假;
});
this.cars[index].starred=!this.cars[index].starred;
}
}
});

{{car.name}
星条旗
试试这个:

this.cars[index].starred = !this.cars[index].starred;
this.cars.map((i) => {
     if(i.name!=this.cars[index].name)
          i.starred = false;
});

我更喜欢先保存目标的“星号”状态,然后再切换它

如果是这样,则不需要在for循环中放入一条If语句。虽然在这种情况下,它并没有显著提高性能,但我相信避免太多的iffor loop是一个好习惯

下面是一个例子:

newvue({
el:“应用程序”,
数据(){
返回{
汽车:[{
名称:“丰田”,
主演:假
},
{
名称:“宝马”,
主演:假
},
{
姓名:“福特”,
主演:假
}
]
};
},
方法:{
设置焦油量(指数){
设cur=this.cars[index].带星号
此.cars.forEach((i)=>{
i、 星号=假;
});
this.cars[index].starred=!cur;
}
}
});

{{car.name}
星条旗

没有。你不能将同一个设置回false。太好了!!非常感谢。当计时器结束时接受它。谢谢你的回答!!这是解决这个问题的一个很酷的方法。