localStorage功能的封装
今天在闲鱼上收到一个单子,要求是利用localstorage的基础功能,封装一个类以供调用,因为在上班路上,并没有明确答应,到了工位上写了一下,然后联系了这位同学,他说别人已经接单了。就这样,我闲鱼上第一次接单就错过了,既然写了就放上来,万一以后有用到的呢!
单子就是要求,存储数据,根据key查找数据,根据首字符模糊查找数据,删除key的数据,根据首字符模糊删除数据,以及返回数据的json操作等功能,写完之后简单试了下,功能基本都可以实验,如果有错误的地方,还望大家指导一下(一个卑微的辣鸡前端开发者)
class MyStorage {
constructor(name) {
this.name = 'MyStorage';
}
set(key, value) {
let options = {};
if (Object.prototype.toString.call(value) == '[object String]') {
options.name = key;
options.value = value;
}
if (Object.prototype.toString.call(value) == '[object Object]') {
options.name = key;
options.value = JSON.stringify(value);
}
if (Object.prototype.toString.call(value) == '[object Array]') {
options.name = key;
options.value = JSON.stringify(value);
}
localStorage.setItem(options.name, options.value);
}
get(key) {
let item = localStorage.getItem(key);
return item;
}
match(key_pre) {
const res = [];
const myLength = key_pre.length;
Object.keys(localStorage)
.forEach(function (key) {
let obj = {};
if (key.substring(0, myLength) == key_pre) {
obj.name = key;
obj.value = localStorage.getItem(key);
res.push(obj)
}
});
return res;
}
jqet(key) {
let item = localStorage.getItem(key);
try {
item = JSON.parse(item);
} catch (error) {
item = item;
}
return item;
}
remove(key) {
localStorage.removeItem(key);
}
removeMatch(key_pre) {
const myLength = key_pre.length;
Object.keys(localStorage)
.forEach(function (key) {
if (key.substring(0, myLength) == key_pre) {
localStorage.removeItem(key);
}
});
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 从安的博客!
评论