javascript - 用localstorage删除某个key下的某条数据
问题描述
查到的似乎都是用removeItem 然后删除key 想问下有没有更加细致的方法可以删除某个key下的某条数据举例
如图 假如我想把这个contrastdata里面的a1709这条数据删除 应该怎么写?
问题解答
回答1:由于localStorage里存的其实都是字符串,所以,你看到的这个实际上是数组contrastdata经过JSON.stringify然后写入到localStorage里去的结果。
由于原生的localStorage只处理键值对的增删改查,所以要处理contrastdata中a1709这项,只能将contrastdata数组化,然后,删掉a1709这项后再转成字符串替换掉,代码如下:
var contrastdata = JSON.parse(localStorage.getItem(’contrastdata’)); // 数组化后的值delete contrastdata[’a1709’]; // 删除a1709项localStorage.setItem(JSON.stringify(contrastdata)); // 将删除a1709项后的contrastdata字符串化写回localStorage回答2:
最简单粗暴的
const data = JSON.parse(localStorage.getItem(’contractdata’));// ...localStorage.setItem(’contractdata’, JSON.stringify(data));回答3:
原生只提供了基础api 要自己封装函数
回答4:在这里 删除某个key换个思路就是重新setItem一个新的contractdata去替换掉
回答5:提取contrastdata字符串str
转换为对象obj
从对象中提取a1709所在的键值对,并删除
设置新的contrastdata
let str = localStorage.getItem(’contrastdata’);let obj = JSON.parse(str);delete obj.instrumentIDdatelocalStorage.setItem(’contrastdata’, JSON.stringify(obj))回答6:
我觉得你要移除某个东西,首先这个东西必须要有唯一的标识,然后在数据里面找到这个标识所对应的一个数据集,然后删掉这个数据集就行了,对于localstorage, 我最常用的就是把对象push到某个数组,然后把数组字符串化,然后存入localstorage,取出来的时候可以再把字符串对象化。然后根据唯一标识删掉数组中的某个数据。
相关文章:
1. 前端 - 用ionic开发的微信公众号,二维码图片长按时无法弹出“识别图中二维码”菜单2. android - 哪位大神知道java后台的api接口的对象传到前端后输入日期报错,是什么情况?求大神指点3. javascript - 微信小程序封装定位问题(封装异步并可能多次请求)4. java - 安卓接入微信登录,onCreate不会执行5. angular.js - 在ionic下,利用javascript导入百度地图,pc端可以显示,移动端无法显示6. 百度地图api - Android百度地图SDK,MapView上层按钮可见却不可触,怎么解决?7. node.js - 如何在vue模板中使用nodeJS?8. vue.js - vue 打包后 nginx 服务端API请求跨域问题无法解决。9. Python requests 如何获取第一次GET请求时 Request Headers 中的 Cookies?10. python - Win7调用flup报错’module’ object has no attribute ’fromfd’
