84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
查到的似乎都是用removeItem 然后删除key 想问下有没有更加细致的方法可以删除某个key下的某条数据举例
如图 假如我想把这个contrastdata里面的a1709这条数据删除 应该怎么写?
光阴似箭催人老,日月如移越少年。
由于localStorage里存的其实都是字符串,所以,你看到的这个实际上是数组contrastdata经过JSON.stringify然后写入到localStorage里去的结果。
localStorage
contrastdata
JSON.stringify
由于原生的localStorage只处理键值对的增删改查,所以要处理contrastdata中a1709这项,只能将contrastdata数组化,然后,删掉a1709这项后再转成字符串替换掉,代码如下:
a1709
var contrastdata = JSON.parse(localStorage.getItem('contrastdata')); // 数组化后的值 delete contrastdata['a1709']; // 删除a1709项 localStorage.setItem(JSON.stringify(contrastdata)); // 将删除a1709项后的contrastdata字符串化写回localStorage
最简单粗暴的
const data = JSON.parse(localStorage.getItem('contractdata')); // ... localStorage.setItem('contractdata', JSON.stringify(data));
原生只提供了基础api 要自己封装函数
在这里 删除某个key换个思路就是重新setItem一个新的contractdata去替换掉
提取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,取出来的时候可以再把字符串对象化。然后根据唯一标识删掉数组中的某个数据。
由于
localStorage
里存的其实都是字符串,所以,你看到的这个实际上是数组contrastdata
经过JSON.stringify
然后写入到localStorage
里去的结果。由于原生的
localStorage
只处理键值对的增删改查,所以要处理contrastdata
中a1709
这项,只能将contrastdata
数组化,然后,删掉a1709
这项后再转成字符串替换掉,代码如下:最简单粗暴的
原生只提供了基础api 要自己封装函数
在这里 删除某个key换个思路就是重新setItem一个新的contractdata去替换掉
提取contrastdata字符串str
转换为对象obj
从对象中提取
a1709
所在的键值对,并删除设置新的contrastdata
我觉得你要移除某个东西,首先这个东西必须要有唯一的标识,然后在数据里面找到这个标识所对应的一个数据集,然后删掉这个数据集就行了,对于localstorage, 我最常用的就是把对象push到某个数组,然后把数组字符串化,然后存入localstorage,取出来的时候可以再把字符串对象化。然后根据唯一标识删掉数组中的某个数据。