javascript - 用localstorage刪除某個key下的某條數(shù)據(jù)
問題描述
查到的似乎都是用removeItem 然后刪除key 想問下有沒有更加細(xì)致的方法可以刪除某個key下的某條數(shù)據(jù)舉例
如圖 假如我想把這個contrastdata里面的a1709這條數(shù)據(jù)刪除 應(yīng)該怎么寫?
問題解答
回答1:由于localStorage里存的其實都是字符串,所以,你看到的這個實際上是數(shù)組contrastdata經(jīng)過JSON.stringify然后寫入到localStorage里去的結(jié)果。
由于原生的localStorage只處理鍵值對的增刪改查,所以要處理contrastdata中a1709這項,只能將contrastdata數(shù)組化,然后,刪掉a1709這項后再轉(zhuǎn)成字符串替換掉,代碼如下:
var contrastdata = JSON.parse(localStorage.getItem(’contrastdata’)); // 數(shù)組化后的值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:
原生只提供了基礎(chǔ)api 要自己封裝函數(shù)
回答4:在這里 刪除某個key換個思路就是重新setItem一個新的contractdata去替換掉
回答5:提取contrastdata字符串str
轉(zhuǎn)換為對象obj
從對象中提取a1709所在的鍵值對,并刪除
設(shè)置新的contrastdata
let str = localStorage.getItem(’contrastdata’);let obj = JSON.parse(str);delete obj.instrumentIDdatelocalStorage.setItem(’contrastdata’, JSON.stringify(obj))回答6:
我覺得你要移除某個東西,首先這個東西必須要有唯一的標(biāo)識,然后在數(shù)據(jù)里面找到這個標(biāo)識所對應(yīng)的一個數(shù)據(jù)集,然后刪掉這個數(shù)據(jù)集就行了,對于localstorage, 我最常用的就是把對象push到某個數(shù)組,然后把數(shù)組字符串化,然后存入localstorage,取出來的時候可以再把字符串對象化。然后根據(jù)唯一標(biāo)識刪掉數(shù)組中的某個數(shù)據(jù)。
相關(guān)文章:
1. 關(guān)于docker下的nginx壓力測試2. nignx - docker內(nèi)nginx 80端口被占用3. docker-machine添加一個已有的docker主機(jī)問題4. docker鏡像push報錯5. python3.x - python連oanda的模擬交易api獲取json問題第五問6. angular.js - angular內(nèi)容過長展開收起效果7. java - SSH框架中寫分頁時service層中不能注入分頁類8. node.js - 我是一個做前端的,求教如何學(xué)習(xí)vue,node等js引擎?9. 為什么我ping不通我的docker容器呢???10. html5 - 百度echart官網(wǎng)下載的地圖json數(shù)據(jù)亂碼
