为什么我的数组在函数返回后会发生变化?

我有一个函数,在其中我过滤一个数组,并在复选框的帮助下检查对象的属性是否等于1。liked


  async getGetLikedMatches(checked){

    if(checked){

      await this.sp.getReleases().subscribe(data => {

        this.allMatches = data;

        this.matches = data;

      });

      this.matches = this.allMatches.filter(match => match.favorit == 1);

      console.log({matches: this.matches, allMatches: this.allMatches}); // matches has correctly 6 

                                                                         // elements

      // after the fuction returns matches == allMatches -> 110 element

      // but why?

    }

    else if (!checked){

      await this.sp.getReleases().subscribe(data => {

        this.allMatches = data;

        this.matches = data;

      });

      console.log(this.matches)

    }

在我的html文件中,我迭代这些匹配项:


        <div class="col-3" *ngFor="let match of matches">

            <img [src]="match.images == '' ? url : getImage(match)"

              alt="matches" 

             style="min-width: 200px; max-width: 200px; max-height: 200px; min-height: 200px;"

             (click)="onDetailView(match.id, selectedType)"/> <br />

        </div>


慕沐林林
浏览 124回答 1
1回答

吃鸡游戏

我认为你错误地使用了rxjs,试试这个getGetLikedMatches(checked) {&nbsp; &nbsp; this.sp.getReleases().subscribe(data => {&nbsp; &nbsp; &nbsp; &nbsp;this.allMatches = data;&nbsp; &nbsp; &nbsp; &nbsp;if (checked) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.matches = this.allMatches.filter(match => match.favorit == 1);&nbsp; &nbsp; &nbsp; &nbsp;} else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.matches = data;&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp;console.log({ matches: this.matches, allMatches: this.allMatches });});}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript