Javascript 当使用ngfor作为默认值时,是否有方法查找使用绑定到事件的属性的数组元素?

Javascript 当使用ngfor作为默认值时,是否有方法查找使用绑定到事件的属性的数组元素?,javascript,arrays,angular,Javascript,Arrays,Angular,我在数组上使用ngFor进行迭代。我想按下另一个按钮,该按钮将根据该数组中数组对象foo{bar:'New'}的特定属性过滤该数组。我想使用NgFor最初填充事件并使用事件进一步过滤。这可能吗? 数组中的对象 musicArray= [{ artist:'Foo', emotion:'Sad', linker:'./assets/music/xx.mp3', myImg:'./assets/images/sad.jpeg' }, 填充数组的div: <di

我在数组上使用ngFor进行迭代。我想按下另一个按钮,该按钮将根据该数组中数组对象foo{bar:'New'}的特定属性过滤该数组。我想使用NgFor最初填充事件并使用事件进一步过滤。这可能吗? 数组中的对象

musicArray= [{
    artist:'Foo',
    emotion:'Sad',
    linker:'./assets/music/xx.mp3',
    myImg:'./assets/images/sad.jpeg'
},
填充数组的div:

<div *ngFor="let music of this.myTrack">

当前,我的事件返回了我想要的结果,但我不知道如何将其设置为ngFor数组。

array.find始终只返回一个元素,而不是数组。你应该这样做

this.musicArray.filter(x => x.emotion =="New")
这将根据条件返回一个新数组

根据我对你想要达到的目标的理解,你首先需要运行音乐列表

<div *ngFor="let music of this.myMusic">

array.find将始终只返回一个元素,而不是数组。你应该这样做

this.musicArray.filter(x => x.emotion =="New")
这将根据条件返回一个新数组

根据我对你想要达到的目标的理解,你首先需要运行音乐列表

<div *ngFor="let music of this.myMusic">

我已编辑了我的答案,以使您的解决方案更简洁。您不需要所有这些变量:)再次感谢,太棒了。为我节省了大量时间和头痛。总是很乐意帮助:)我编辑了我的答案,使您的解决方案更简洁。您不需要所有这些变量:)再次感谢,太棒了。为我节省了大量时间和头痛。总是乐于帮助:)
<div *ngFor="let music of this.myMusic">
<button mat-button (click)="myEvent($event, music.emotion)">
myEvent(event, emotion) {
  this.musicArray =   this.musicArray.filter(x => x.emotion === emotion) ; 
  }