簡體   English   中英

Javascript:從 sessionStorage 中檢索所有密鑰?

[英]Javascript: Retrieve all keys from sessionStorage?

是否無法檢索我存儲在 sessionStorage(或 localStorage)中的所有鍵/對象?

如果我已經完成sessionStorage.name = 'John'sessionStorage.city = 'New York' ,有沒有辦法獲得顯示鍵namecity的列表?

獲取顯示密鑰名稱城市的列表

使用Object.keys()函數:

sessionStorage.name = 'John';
sessionStorage.city = 'New York';

console.log(Object.keys(sessionStorage));

您可以使用Object.keys()reduce()

var obj = Object.keys(localStorage).reduce(function(obj, key) {
   obj[key] = localStorage.getItem(key);
   return obj
}, {});

console.log(obj)

如果你不需要支持IE9以下(或樂於使用一個Polyfills比你可以使用組合Object.keys()陣列prototype.map()。如下:

Object.keys(localStorage).map(function(c,i,a){
  // do whatever
});

Object.keys()返回傳遞給它的對象的可枚舉值的數組,並具有不枚舉其原型鏈中的任何屬性的額外好處。

然后,您可以使用Array.prototype.map()對該返回的數組運行操作。

有了這個,您可以將本地存儲中的所有數據分配給一個對象:

let storage = {}
Object.keys(localStorage).forEach((key) => {
    storage[key] = localStorage.getItem(key);
});

您可以像這樣獲取鍵及其值。

for (const [key, value] of Object.entries(sessionStorage)) {
    console.log({key, value});
};

除了 IE11,這應該可以工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM