Как удалить первый объект из массива с помощью сращивания в angular 8 при каждом нажатии

#angular

#angular

Вопрос:

У меня есть массив, содержащий 3 объекта. Я хочу удалять первый объект при каждом нажатии.Когда я нажимаю кнопку, удаляется только первый объект, мне нужно каждый раз удалять первый объект из обновленного результата массива. Вот код ниже https://stackblitz.com/edit/angular-nuwwva?file=src/app/app.component.html

app.component.ts

 import { Component, OnInit } from "@angular/core";

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent {
  name = "Angular";

  ngOnInit() {}

  clickhere() {
    const arraydata = [
      { name: "name1", value: 1 },
      { name: "name2", value: 2 },
      { name: "name3", value: 3 }
    ];
    arraydata.splice(0, 1);
    console.log(arraydata);
  }
}
  

app.component.html

 <button type="button" (click)="clickhere()">Click Me!</button>
  

Комментарии:

1. Почему вы не используете shift ? w3schools.com/jsref/jsref_shift.asp

2. поскольку здесь первый объект, который является динамическим в моем проекте, shift удалит только первый элемент. Первый объект также может быть вторым

3. I want to remove first object every click -> вот что shift делает.

Ответ №1:

Это должно сработать:

 import { Component, OnInit } from "@angular/core";

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent {
  name = "Angular";

  arraydata = [];

  ngOnInit() {
    this.arraydata = [{ name: "name1", value: 1 },
      { name: "name2", value: 2 },
      { name: "name3", value: 3 }
  }];

  clickhere() {
    this.arraydata.splice(0, 1);
    console.log(arraydata);
  }
}
  

С уважением

Комментарии:

1. Спасибо за ваш ответ, я хочу тот же результат, но с использованием без глобальной переменной