Bewegen Sie das Objekt von einem array zu einem anderen

ich habe ein Objekt, das eine der Eigenschaften ist ein array von Objekten, die Idee ist, bewegen Sie Objekte aus diesem array keine neuen ein, wenn eine Bedingung wahr ist.

public $onInit(): void {
  this.getTicket();
}

public ticket: any; //Object with the array
public comments: any = []; //New array to move the elements
public getTicket(): void {
    this.ticketService
        .getTicketComplete(this.$stateParams.ticketID)
        .then((response: any) => {
            this.ticket = response;
            this.stringToDate(this.ticket);
            this.ticket.messages.forEach((elem, index) => {
                if (elem.type === "comment") {
                    this.ticket.messages.splice(index, 1);
                    this.comments.push(elem);
                }
            });
            console.log(this.ticket);
    });
}

das problem, das ich habe, ist die nächste:
das array hat, um Typen von Objekten, Nachrichten und Kommentare, wenn das array hat 2 Nachrichten und 3 Kommentare sollte es push-to-die new array 3 Kommentare und lassen Sie 2 Nachrichten, sondern bewegt sich nur 2 Kommentare.

Jede Idee. Vielen Dank für Ihre Hilfe.

  • Vielleicht die Ursache ist, dass Sie ändern die array innerhalb der forEach-Schleife?
  • Sollten Sie die filter() Methode zu filtern, welche Art von Element, das Sie entfernen möchten nach haben Sie die eingefügten Elemente in Ihre comments Objekt
  • ja die Idee ist Schleife die array auf der Suche für die Elemente, und entfernen Sie das element aus dem array und drücken Sie es auf ein neues....gibt es eine Möglichkeit, das zu tun, außerhalb der forEach Schleife....?
Schreibe einen Kommentar