Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修改列表中一个元素的属性_Javascript_List - Fatal编程技术网

Javascript 如何修改列表中一个元素的属性

Javascript 如何修改列表中一个元素的属性,javascript,list,Javascript,List,我有一个动物列表,当我点击底部指示时,我只需要更改一个动物的布尔属性,我尝试了下面的代码,但它会更改列表中的所有动物,当我再次点击按钮时,它不会更改为另一个值(false),它只需更改一次,每次单击按钮时,我都需要更改值。名单上所有的动物都有身份证,你能帮我吗 public UpdateStatus(){ if(this.pets.filter(pet=> pet.Favorito==true)){ this.pets.filter(pet=> pet.Favorito

我有一个动物列表,当我点击底部指示时,我只需要更改一个动物的布尔属性,我尝试了下面的代码,但它会更改列表中的所有动物,当我再次点击按钮时,它不会更改为另一个值(false),它只需更改一次,每次单击按钮时,我都需要更改值。名单上所有的动物都有身份证,你能帮我吗

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;
}