Javascript 如何修改列表中一个元素的属性
我有一个动物列表,当我点击底部指示时,我只需要更改一个动物的布尔属性,我尝试了下面的代码,但它会更改列表中的所有动物,当我再次点击按钮时,它不会更改为另一个值(false),它只需更改一次,每次单击按钮时,我都需要更改值。名单上所有的动物都有身份证,你能帮我吗Javascript 如何修改列表中一个元素的属性,javascript,list,Javascript,List,我有一个动物列表,当我点击底部指示时,我只需要更改一个动物的布尔属性,我尝试了下面的代码,但它会更改列表中的所有动物,当我再次点击按钮时,它不会更改为另一个值(false),它只需更改一次,每次单击按钮时,我都需要更改值。名单上所有的动物都有身份证,你能帮我吗 public UpdateStatus(){ if(this.pets.filter(pet=> pet.Favorito==true)){ this.pets.filter(pet=> pet.Favorito
public UpdateStatus(){
if(this.pets.filter(pet=> pet.Favorito==true)){
this.pets.filter(pet=> pet.Favorito==false);
}else if(this.pets.filter(pet=> pet.Favorito==false)){
this.pets.filter(pet=>pet.Favorito==true);
}
}
下面是列表中的动物和按钮的示例,最后是我想要更改的属性
只需将特定宠物的id作为参数传递给UpdateStatus即可
public UpdateStatus(id){
const index = this.pets.map(i => i.id).indexOf(id);
this.pets[index].Favorito = !this.pets[index].Favorito;
}
如何确定某个特定的动物?因为filter()返回数组,所以
if()
将始终是真实的,if([])
即使没有匹配项也始终是真实的。如果您正在查找特定实例,则可能需要find()
,您的代码不会更改任何内容<代码>=用于比较,=
用于分配。您好@Areg,每个动物都有自己的id,这就是我正在使用的。@AriadneAndrade ok检查更新的答案,看看是否有帮助
public UpdateStatus(id){
const index = this.pets.map(i => i.id).indexOf(id);
this.pets[index].Favorito = !this.pets[index].Favorito;
}