如何删除本地存储中对象数组中的特定对象? (Angular 10+)

How to remove a specific object within an array of objects in local storage? (Angular 10+)

我有一个对象数组(每个对象都是一个用户的详细信息),存储在我的本地存储中,然后显示在用户 table 中。单击该对象记录的删除按钮(如 table 所示)时,我想删除本地存储中此对象数组中的特定对象。所以我相信应该发生的事情;当在 table 上单击特定对象记录的删除按钮时,应将数组中的对象位置发送到删除函数,然后该函数将使用本地存储中的 removeItem 方法删除该位置的对象对象数组。

本地存储如下所示:

删除按钮(在 table 上的每个对象记录上找到)

<button mat-menu-item (click)="deleteUser()">Delete User</button>

删除函数:

ngOnInit(): void {
    this.user = JSON.parse(localStorage.getItem('Users') || '{}');
    this.userDataSource = new MatTableDataSource(this.user);
    this.deleteUser()
  }

  deleteUser() {
    localStorage.removeItem('Users')
  }

我根本不知道如何只删除“2:对象”,而不清除整个本地存储(这就是上面的 deleteUser 函数所做的)。

一个简单的方法。

yourData = JSON.parse(localStorage.getItem("Users"))

yourNewData = []

for(i=0; i<yourData.length; i++) 
{ 
    if(yourData[i].yourKey !== "UserIDYouWantToDelete")
        {
            yourNewData.push(yourData[i]);
        }
}
localStorage.setItem("Users", JSON.stringyfy(yourNewData))

但是,如果您要处理大量数据,这可能会很低效,您可能需要查看 Splice Method 此处。