Javascript 如何删除或避免LocalStorage中的重复值

Javascript 如何删除或避免LocalStorage中的重复值,javascript,local-storage,Javascript,Local Storage,当用户单击按钮时,它将在LocalStorage中存储一些值,如果用户再次单击相同的按钮,它将在LocalStorage中再次存储相同的值,我如何删除或避免在LocalStorage中重复相同的值 谁能帮帮我:) HTML: 本地存储(在用户单击之前): 本地存储(用户单击时): LocalStorage(当用户再次单击时): 我尝试了过滤器,但由于某些原因,它无法工作: itemsLocalStorage = itemsLocalStorage.filter(e => e === var

当用户单击按钮时,它将在LocalStorage中存储一些值,如果用户再次单击相同的按钮,它将在LocalStorage中再次存储相同的值,我如何删除或避免在LocalStorage中重复相同的值
谁能帮帮我:)

HTML:

本地存储(在用户单击之前):

本地存储(用户单击时):

LocalStorage(当用户再次单击时):

我尝试了
过滤器
,但由于某些原因,它无法工作:

itemsLocalStorage = itemsLocalStorage.filter(e => e === varer);

获取临时数组,然后检查重复值

var arr=[“ae90ac1a-64c4-49a7-b588-ae6b69a37d47”,“ae90ac1a-64c4-49a7-b588-ae6b69a37d47”]
函数挤压(arr){
var tmp=[];
对于(变量i=0;i控制台日志(挤压(arr))从localStorage获取数组,如果在该数组中尚未找到该值,则将该值推送到该数组中,然后在推送时更新localStorage

var array = JSON.parse(window.localStorage.getItem("itemsline")) || [];//the "|| []" replaces possible null from localStorage with empty array
var value = "some value";
if(array.indexOf(value) == -1){
    array.push(value);
    window.localStorage.setItem("itemsline", JSON.stringify(array));
}
下面是这段代码的一个版本,它更能解释它是如何工作的:

//All values stored in localStorage are strings.
//Grab our itemsline string from localStorage.
var stringFromLocalStorage = window.localStorage.getItem("itemsline");

//Then parse that string into an actual value.
var parsedValueFromString = JSON.parse(stringFromLocalStorage);

//If that value is null (meaning that we've never saved anything to that spot in localStorage before), use an empty array as our array. Otherwise, just stick with the value we've just parsed out.
var array = parsedValueFromString || [];

//Here's the value we want to add
var value = "some value";

//If our parsed/empty array doesn't already have this value in it...
if(array.indexOf(value) == -1){
    //add the value to the array
    array.push(value);

    //turn the array WITH THE NEW VALUE IN IT into a string to prepare it to be stored in localStorage
    var stringRepresentingArray = JSON.stringify(array);

    //and store it in localStorage as "itemsline"
    window.localStorage.setItem("itemsline", stringRepresentingArray);
}
你可以使用过滤器
array.filter((项目,索引)=>array.indexOf(项目)==index)

const数组=[“ae90ac1a-64c4-49a7-b588-ae6b69a37d47”,“ae90ac1a-64c4-49a7-b588-ae6b69a37d47”];
常量filteredArray=array.filter((项,索引)=>array.indexOf(项)==index);

console.log(filteredArray)
您可以使用js的Set对象,它总是只在唯一时添加值

 var array = JSON.parse(localStorage.getItem("items")) || [];
let set =new Set(array)
set.add(newValue)
const toArr=Array.from(set)
localStorage.setImem("items",JSON.stringify(toArr))

您可以使用
Set
/
Map
数据结构来检查唯一值(ID),只需签出我的答案。让我再试一次:)使用此代码,它将找到重复的值,但它将再次添加到localstorage,我不希望:var unique=getLocalStorage.filter(函数(elem,index,self){return index==self.indexOf(elem);})检查我的答案,看它是否适合您。应该很容易合并到您的代码中。您需要进一步的解释吗?是的:)如果可以的话
["ae90ac1a-64c4-49a7-b588-ae6b69a37d47","ae90ac1a-64c4-49a7-b588-ae6b69a37d47"]
itemsLocalStorage = itemsLocalStorage.filter(e => e === varer);
var array = JSON.parse(window.localStorage.getItem("itemsline")) || [];//the "|| []" replaces possible null from localStorage with empty array
var value = "some value";
if(array.indexOf(value) == -1){
    array.push(value);
    window.localStorage.setItem("itemsline", JSON.stringify(array));
}
//All values stored in localStorage are strings.
//Grab our itemsline string from localStorage.
var stringFromLocalStorage = window.localStorage.getItem("itemsline");

//Then parse that string into an actual value.
var parsedValueFromString = JSON.parse(stringFromLocalStorage);

//If that value is null (meaning that we've never saved anything to that spot in localStorage before), use an empty array as our array. Otherwise, just stick with the value we've just parsed out.
var array = parsedValueFromString || [];

//Here's the value we want to add
var value = "some value";

//If our parsed/empty array doesn't already have this value in it...
if(array.indexOf(value) == -1){
    //add the value to the array
    array.push(value);

    //turn the array WITH THE NEW VALUE IN IT into a string to prepare it to be stored in localStorage
    var stringRepresentingArray = JSON.stringify(array);

    //and store it in localStorage as "itemsline"
    window.localStorage.setItem("itemsline", stringRepresentingArray);
}
 var array = JSON.parse(localStorage.getItem("items")) || [];
let set =new Set(array)
set.add(newValue)
const toArr=Array.from(set)
localStorage.setImem("items",JSON.stringify(toArr))