Javascript 只有按照上次添加的顺序删除localStorage.removeItem()时,它才起作用。为什么?
下面是它正在做的事情的视频: 您会看到,只有当我从最后添加的项目中删除时,它才会在25秒左右工作 例如,如果我按此顺序添加:Javascript 只有按照上次添加的顺序删除localStorage.removeItem()时,它才起作用。为什么?,javascript,arrays,json,reactjs,local-storage,Javascript,Arrays,Json,Reactjs,Local Storage,下面是它正在做的事情的视频: 您会看到,只有当我从最后添加的项目中删除时,它才会在25秒左右工作 例如,如果我按此顺序添加: 恐怖电影1 恐怖电影2 恐怖电影3 恐怖电影4 仅当我按以下顺序单击删除时才删除:4,3,2,1 如果我按此顺序单击1、4、5、6,它只会混淆本地存储中的项目顺序,而不会删除 //从本地存储中获取项目并在页面上呈现** useffect(()=>{ 让arrayOfValues=Object.values(localStorage); log(“localstoragea
//从本地存储中获取项目并在页面上呈现**
useffect(()=>{
让arrayOfValues=Object.values(localStorage);
log(“localstoragearray:”,arrayOfValues);
如果(arrayOfValues.length>0){
arrayOfValues.forEach((电影)=>{
让storedMovies=JSON.parse(电影);
提名。推送(仓储式汽车);
提名(提名);
setNominatedCount(nominatedCount+指定的.length);
});
}
}, []);
//从本地存储中删除指定的电影和**
常量删除=(电影)=>{
localStorage.removietem(movie.imdbID);
指定接头(
提名.findIndex((电影)=>movie.title),
1.
);
提名(提名);
setNominatedCount(nominatedCount-1);
};
将电影添加到本地存储//将电影添加到本地存储
useffect(()=>{
提名。forEach((电影)=>{
如果(指定长度>5){
返回;
}
setItem(movie.imdbID,JSON.stringify(movie));
});
控制台日志(“指定:”,指定);
},[提名];
{removeNomination(电影);}>
去除
请创建一个类似于codesandbox的让arrayOfValues=Object.values(localStorage)
这一行应该做什么?似乎代码已经发布了两次,因为removeNomination
被声明为const
两次,这将引发语法错误。很抱歉,我在尝试发布代码时出错。我更新了它。让arrayofvalues从本地存储中获取值您正在对指定的数组进行适当的变异。您应该将其视为不可变的: