'adding ang removing row

I have a grid array of objects and it has default data from the database , now on the front end the data are being displayed on the table/grid and user can add row and delete row , when I add a row I only want to insert an empty object.

my issue is when I add a row duplicate ids are existing and when I delete only just a single row sometimes multiple rows are being deleted

What seem to be the issue of my implementation ? how do I delete and add rows without compromising the ids ? Thanks.

enter image description here

#grid data - from the database

gridTableData [
    {
        "id": 0,
        "demos": "21 Est. Pop",
    },
    {
        "id": 1,
        "demos": "Households",
    },
    {
        "id": 5,
        "demos": "Avg HH Inc",
    },
]

#add and delete row code

 deleteRow(id: number) {
    const filteredDemographics = this.gridTableData.filter(s => s.id !== id);
 this.gridTableData = [...filteredDemographics];

  }

  addRow() {
    this.gridTableData.push({id:this.gridTableData.length});
    console.log("this.gridTableData" , this.gridTableData)
  }

#html

  <tbody *ngIf="gridTableData.length > 0">
                <tr *ngFor="let row of gridTableData;let i = index" [ngClass]="{'row-is-editing':isRowEditing(i)}">
                    <td>
                        <button *ngIf="checkIfExistsOnDefaultGrid(row) === false" class="material-icons-outlined" mat-icon-button color="error"
                            (click)="deleteRow(row.id)">
                            <mat-icon>delete_outline</mat-icon>
                        </button>
                    </td>
                </tr>
            </tbody>


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source