javascript - 用localstorage刪除某個key下的某條數據
大家讲道理
大家讲道理 2017-07-03 11:41:49
0
6
1396

查到的似乎都是用removeItem 然後刪除key 想問下有沒有更細緻的方法可以刪除某個key下的某條資料
舉例

#如圖 假如我想把這個contrastdata裡面的a1709這條資料刪除 該怎麼寫?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(6)
我想大声告诉你

由於localStorage裡存的其實都是字串,所以,你看到的這個其實是數組contrastdata經過JSON.stringify然後寫入到localStorage裡去的結果。

由於原生的localStorage只處理鍵值對的增刪改查,所以要處理contrastdataa1709這項,只能將contrastdata數組化,然後,刪除轉成字串替換掉,程式碼如下:

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去替換掉

世界只因有你
  1. 提取contrastdata字串str

  2. 轉換為物件obj

  3. 從物件中提取a1709所在的鍵值對,並刪除

  4. 設定新的contrastdata

let str = localStorage.getItem('contrastdata');
let obj = JSON.parse(str);
delete obj.instrumentIDdate
localStorage.setItem('contrastdata', JSON.stringify(obj))
伊谢尔伦

我覺得你要移除某個東西,首先這個東西必須要有唯一的標識,然後在資料裡面找到這個標識所對應的一個資料集,然後刪掉這個資料集就行了,對於localstorage, 我最常用的就是把物件push到某個數組,然後把數組字串化,然後存入localstorage,取出來的時候可以再把字串物件化。然後根據唯一標識刪掉數組中的某個資料。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板