const Storage = {
level: deserialize(localStorage.getItem('level')) || [],
level2: deserialize(localStorage.getItem('level2')) || [],
// 设置level1中的数据
setlevel: function (key, val) {
if (!localStorage.getItem(key)) {
this.level.push(key)
localStorage.setItem('level', serialize(this.level))
}
localStorage.setItem(key, serialize(val))
},
// 得到level1中的数据
getlevel: function (key) {
let val = deserialize(localStorage.getItem(key))
return val
},
// 设置level2中的数据
setlevel2: function (key, val) {
if (!localStorage.getItem(key)) {
this.level.push(key)
localStorage.setItem('level2', serialize(this.level))
}
localStorage.setItem(key, serialize(val))
},
// 得到level2中的数据
getlevel2: function (key) {
let val = deserialize(localStorage.getItem(key))
return val
},
// 删除level1中的数据
removelevel: function () {
var level = this.level
let removeLevel = [...new Set(level)].map((item) => {
localStorage.removeItem(item)
})
localStorage.setItem('level', serialize([]))
this.level = []
},
// 删除level2中的数据
removelevel2: function () {
var level = this.level
let removeLevel2 = [...new Set(level)].map((item) => {
localStorage.removeItem(item)
})
localStorage.setItem('level2', serialize([]))
this.level2 = []
},
}
// 转成JSON字符串
function serialize(val) {
return JSON.stringify(val)
}
// 转成初始类型
function deserialize(val) {
if (typeof val !== 'string') {
return undefined
}
try {
return JSON.parse(val)
} catch (e) {
return val || undefined
}
}