Javascript 如何在本地存储中忽略重复值并仅附加唯一值?

Javascript 如何在本地存储中忽略重复值并仅附加唯一值?,javascript,Javascript,谁能帮我一下吗。我将数据附加到本地存储中,并且它也会获取重复的值。有人知道如何忽略重复值而只附加唯一值吗?我试图检查其他类似类型的堆栈溢出,但不适合我,请帮助我 请参阅所附代码及其输出以供参考:- getProgramDetails = (ppTermDetails) => { this.programDetails = ppTermDetails; var entry = this.programDetails; sessionStorage.

谁能帮我一下吗。我将数据附加到本地存储中,并且它也会获取重复的值。有人知道如何忽略重复值而只附加唯一值吗?我试图检查其他类似类型的堆栈溢出,但不适合我,请帮助我
请参阅所附代码及其输出以供参考:-

getProgramDetails = (ppTermDetails) => {
      this.programDetails = ppTermDetails;

      var entry = this.programDetails;  

      sessionStorage.setItem("entry", JSON.stringify(entry));

      var allEntries = JSON.parse(sessionStorage.getItem("allEntries")) || []; 

      allEntries.push(entry); 
      sessionStorage.setItem("allEntries", JSON.stringify(allEntries));  
     };

也许更好的方法是使用object并使用
programPerTermId
作为键,这样新的将覆盖旧的,而不必在数组中循环查找重复的

假设programPerTermId是唯一的


{
75:{programPerTermId:75,…}
}
getProgramDetails=(ppTermDetails)=>{
setItem(“entry”,JSON.stringify(ppTermDetails));
var allEntries=JSON.parse(sessionStorage.getItem(“allEntries”))|{};
//我们将使用programPerTermId作为对象的键
//并将对象存储为值
allEntries[ppTermDetails.programPerTermId]=ppTermDetails;
setItem(“allEntries”,JSON.stringify(allEntries));
};

但是如果你仍然想继续你的想法,那么你可以检查这个,在阅读
allEntries
之后检查关于同一主题的评论,你需要编写一些逻辑代码来检查
条目是否已经存在。如果没有,
。按它,否则什么也不做。这是否回答了您的问题@这就是问题所在,我不知道如何用本地存储值检查当前值,条目是否已经存在?如何检查和比较当前值与本地存储值?如果我的当前值已经存在于本地存储中,它可以避免重复的值,但是如果该值是唯一的,它将附加到本地存储中。它是以这种方式工作的,但我仍然无法创建它。你能告诉我如果这里有其他条件或类似的条件,我该如何申请吗?实际上,我不知道如何比较和检查本地存储中是否已经存在当前数据?如果类似,则不追加值,如果唯一,则在本地存储中追加值。用英语写代码,让你有个想法。例如:如果(当前值==已存在于本地存储中){console.log(“已存在”)}或者{在本地存储中以唯一方式追加值}我认为本地存储中没有办法做您想要的事情。此外,您也没有附加到本地存储,而是要替换整个数据。当您执行getItem时,您得到的是整个值,因此在解析JSON之后,您可以执行如下操作
if(allEntries[ppTermDetails.programPerTermId])
,但请注意对象可能为空,因此您可能应该使用object.keys(…).length>0。