javascript - 用localstorage刪除某個(gè)key下的某條數(shù)據(jù)
問(wèn)題描述
查到的似乎都是用removeItem 然后刪除key 想問(wèn)下有沒(méi)有更加細(xì)致的方法可以刪除某個(gè)key下的某條數(shù)據(jù)舉例
如圖 假如我想把這個(gè)contrastdata里面的a1709這條數(shù)據(jù)刪除 應(yīng)該怎么寫(xiě)?
問(wèn)題解答
回答1:由于localStorage里存的其實(shí)都是字符串,所以,你看到的這個(gè)實(shí)際上是數(shù)組contrastdata經(jīng)過(guò)JSON.stringify然后寫(xiě)入到localStorage里去的結(jié)果。
由于原生的localStorage只處理鍵值對(duì)的增刪改查,所以要處理contrastdata中a1709這項(xiàng),只能將contrastdata數(shù)組化,然后,刪掉a1709這項(xiàng)后再轉(zhuǎn)成字符串替換掉,代碼如下:
var contrastdata = JSON.parse(localStorage.getItem(’contrastdata’)); // 數(shù)組化后的值delete contrastdata[’a1709’]; // 刪除a1709項(xiàng)localStorage.setItem(JSON.stringify(contrastdata)); // 將刪除a1709項(xiàng)后的contrastdata字符串化寫(xiě)回localStorage回答2:
最簡(jiǎn)單粗暴的
const data = JSON.parse(localStorage.getItem(’contractdata’));// ...localStorage.setItem(’contractdata’, JSON.stringify(data));回答3:
原生只提供了基礎(chǔ)api 要自己封裝函數(shù)
回答4:在這里 刪除某個(gè)key換個(gè)思路就是重新setItem一個(gè)新的contractdata去替換掉
回答5:提取contrastdata字符串str
轉(zhuǎn)換為對(duì)象obj
從對(duì)象中提取a1709所在的鍵值對(duì),并刪除
設(shè)置新的contrastdata
let str = localStorage.getItem(’contrastdata’);let obj = JSON.parse(str);delete obj.instrumentIDdatelocalStorage.setItem(’contrastdata’, JSON.stringify(obj))回答6:
我覺(jué)得你要移除某個(gè)東西,首先這個(gè)東西必須要有唯一的標(biāo)識(shí),然后在數(shù)據(jù)里面找到這個(gè)標(biāo)識(shí)所對(duì)應(yīng)的一個(gè)數(shù)據(jù)集,然后刪掉這個(gè)數(shù)據(jù)集就行了,對(duì)于localstorage, 我最常用的就是把對(duì)象push到某個(gè)數(shù)組,然后把數(shù)組字符串化,然后存入localstorage,取出來(lái)的時(shí)候可以再把字符串對(duì)象化。然后根據(jù)唯一標(biāo)識(shí)刪掉數(shù)組中的某個(gè)數(shù)據(jù)。
相關(guān)文章:
1. javascript - 求助一個(gè)關(guān)于indexedDB的問(wèn)題2. django進(jìn)行數(shù)據(jù)庫(kù)的查詢(xún)3. python - pip install出現(xiàn)下面圖中的報(bào)錯(cuò) 什么原因?4. javascript - canvas 可以實(shí)現(xiàn) PS 魔法橡皮擦的功能嗎?5. 我把所有的css代碼放在一個(gè)文件夾之后,邊框就變成這個(gè)樣子了,請(qǐng)問(wèn)怎么解決?6. html5 - 請(qǐng)問(wèn)一下寫(xiě)H5的時(shí)候 你們都是兼容那些手機(jī)7. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法8. 輸入地址報(bào)以下截圖錯(cuò)誤,怎么辦?9. javascript - ie11以下單擊打開(kāi)不了file,雙擊可以。求解?10. node.js - node中MYSQL的異步問(wèn)題
