查到的似乎都是用removeItem 然后删除key 想问下有没有更加细致的方法可以删除某个key下的某条数据
举例
如图 假如我想把这个contrastdata里面的a1709这条数据删除 应该怎么写?
查到的似乎都是用removeItem 然后删除key 想问下有没有更加细致的方法可以删除某个key下的某条数据
举例
如图 假如我想把这个contrastdata里面的a1709这条数据删除 应该怎么写?
最简单粗暴的
const data = JSON.parse(localStorage.getItem('contractdata'));
// ...
localStorage.setItem('contractdata', JSON.stringify(data));
提取contrastdata字符串str
转换为对象obj
从对象中提取a1709
所在的键值对,并删除
设置新的contrastdata
let str = localStorage.getItem('contrastdata');
let obj = JSON.parse(str);
delete obj.instrumentIDdate
localStorage.setItem('contrastdata', JSON.stringify(obj))
我觉得你要移除某个东西,首先这个东西必须要有唯一的标识,然后在数据里面找到这个标识所对应的一个数据集,然后删掉这个数据集就行了,对于localstorage, 我最常用的就是把对象push到某个数组,然后把数组字符串化,然后存入localstorage,取出来的时候可以再把字符串对象化。然后根据唯一标识删掉数组中的某个数据。
8 回答4.6k 阅读✓ 已解决
6 回答3.2k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
4 回答2.8k 阅读✓ 已解决
由于
localStorage
里存的其实都是字符串,所以,你看到的这个实际上是数组contrastdata
经过JSON.stringify
然后写入到localStorage
里去的结果。由于原生的
localStorage
只处理键值对的增删改查,所以要处理contrastdata
中a1709
这项,只能将contrastdata
数组化,然后,删掉a1709
这项后再转成字符串替换掉,代码如下: