Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angular8中单击复选框从本地存储中添加和删除值_Javascript_Angular_Angular8 - Fatal编程技术网

Javascript 如何在Angular8中单击复选框从本地存储中添加和删除值

Javascript 如何在Angular8中单击复选框从本地存储中添加和删除值,javascript,angular,angular8,Javascript,Angular,Angular8,我有一个动态生成的复选框列表,我想用对象创建数组 如果值为true,并将项目设置为localStorage,则我希望将数据推送到对象数组中。 如果值为false,则它将从本地存储中删除对象 有人能帮我选择我的代码和预期的输出吗 预期产出 [ { "key": "Test", "value": true }, { "key": "Test1", "

我有一个动态生成的复选框列表,我想用对象创建数组

如果值为true,并将项目设置为localStorage,则我希望将数据推送到对象数组中。 如果值为false,则它将从本地存储中删除对象

有人能帮我选择我的代码和预期的输出吗

预期产出

[
  {
    "key": "Test",
    "value": true
  },
  {
    "key": "Test1",
    "value": true
  },
  {
    "key": "removeItem",
    "value": false
  }
]
代码

  setColumn($event, item) {
    var obj = {}, valueAliasPair = [];
    if (item.tabelHeader.data != '' && $event.checked === true) {
      obj['key'] = item.tabelHeader.data;
      obj['value'] = $event.checked;
      valueAliasPair.push(obj);
      localStorage.setItem('AvailableAmt', JSON.stringify(valueAliasPair));
    }
    if (item.tabelHeader.data != '' && $event.checked === false) {     
      localStorage.removeItem('AvailableAmt', obj['key']);
    }
    console.log(valueAliasPair, "valueAliasPair");
  }

更新:

setColumn($event,item){
让valueAliasPair=JSON.parse(localStorage.getItem(“Availableeamt”)| |“[]”);
如果(item.tabelHeader.data!=“”){
如果($event.checked){
推送({
关键字:item.tabelHeader.data,
价值观:正确,
});
setItem(“Availableeamt”,JSON.stringify(valueAliasPair));
}否则{
const ind=valueAliasPair.findIndex((x)=>x.key==item.tabelHeader.data);
值AliasPair.拼接(ind,1);
setItem(“Availableeamt”,JSON.stringify(valueAliasPair));
}
}
log(valueAliasPair,“valueAliasPair”);
}

是否要从数组中删除整个JSON或特定项?答案已更新,这就是您要查找的内容吗?不,实际上,我希望如果单击复选框,它将创建对象数组并将此对象推送到本地存储中。如果我取消选中复选框,则值将为false,如果值为false,它将从数组中删除对象,并从本地存储中删除它。我希望您修改我的函数,在每个选中和未选中的复选框中添加和删除对象中的项,并在本地存储中更新它