如何删除本地存储中对象数组中的特定对象? (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 此处。
我有一个对象数组(每个对象都是一个用户的详细信息),存储在我的本地存储中,然后显示在用户 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 此处。