如何更新本地存储数组 Angular 中的值 7
How do you update a value in local Storage array Angular 7
我想做的是更新数组中的单个值,这是我目前拥有的代码,但它似乎无法正常工作,想知道是否有人能够帮助我有了这个。
所以,我认为它的工作原理是它从 ngFor 获取索引位置以及数组的自动递增 id 以确保它具有匹配项并将新名称推送到数组。
但这似乎不起作用,它执行 toastr 表示它已更新但它没有在本地存储中
public updateNameLocalStorage(Name, id, i ): void {
const currentArray = this.storage.get(this.STORAGE_KEY);
console.log(currentArray);
for (i = 0; i < currentArray.length; ++i) {
if (currentArray[i].id === id) {
currentArray.push({
Name: Name
});
// insert updated array to local storage
this.storage.set(this.STORAGE_KEY, currentArray);
this.notifiy.showInfo('Name Updated' , '');
} else {
this.notifiy.showFailure('Error' , '');
}
}
这是数据的结构
您正在使用 push
将一个元素追加到数组的末尾。如果你想用给定的 ID 更新一个值,只需直接访问索引并覆盖该值。另外,如果你只是按下 {Name: Name}
数组中的对象就没有 属性 id
了。
像这样:
const currentArray = this.storage.get(this.STORAGE_KEY);
const index = currentArray.findIndex(e => e.id === id);
if(index >= 0) {
currentArray[index] = {...currentArray[index], ...{Name:Name}};
this.storage.set(this.STORAGE_KEY, currentArray);
this.notifiy.showInfo('Name Updated' , '');
} else {
this.notifiy.showFailure('Error' , '');
}
我想做的是更新数组中的单个值,这是我目前拥有的代码,但它似乎无法正常工作,想知道是否有人能够帮助我有了这个。
所以,我认为它的工作原理是它从 ngFor 获取索引位置以及数组的自动递增 id 以确保它具有匹配项并将新名称推送到数组。
但这似乎不起作用,它执行 toastr 表示它已更新但它没有在本地存储中
public updateNameLocalStorage(Name, id, i ): void {
const currentArray = this.storage.get(this.STORAGE_KEY);
console.log(currentArray);
for (i = 0; i < currentArray.length; ++i) {
if (currentArray[i].id === id) {
currentArray.push({
Name: Name
});
// insert updated array to local storage
this.storage.set(this.STORAGE_KEY, currentArray);
this.notifiy.showInfo('Name Updated' , '');
} else {
this.notifiy.showFailure('Error' , '');
}
}
这是数据的结构
您正在使用 push
将一个元素追加到数组的末尾。如果你想用给定的 ID 更新一个值,只需直接访问索引并覆盖该值。另外,如果你只是按下 {Name: Name}
数组中的对象就没有 属性 id
了。
像这样:
const currentArray = this.storage.get(this.STORAGE_KEY);
const index = currentArray.findIndex(e => e.id === id);
if(index >= 0) {
currentArray[index] = {...currentArray[index], ...{Name:Name}};
this.storage.set(this.STORAGE_KEY, currentArray);
this.notifiy.showInfo('Name Updated' , '');
} else {
this.notifiy.showFailure('Error' , '');
}