我目前在本地数据库中的数据如下:
window.localStorage.setItem('QQIDVAL' + ID, JSON.stringify(this));
如何检索本地存储中的所有数据并查找以“QQ”开头的数据
另外,我如何选择要跟踪的列,因为JSON.stringify(this)有很多列,但我只需要其中的一部分。
答案 0 :(得分:1)
您可以在localStorage中存储数组。
喜欢的东西(我没有管理Jsonify。你可以使用Lawnchair来促进这些操作)
window.localStorage.setItem('QQ', {items: [] });
function addItem(id, json) {
var o = window.localStorage.getItem('QQ');
o.items[id] = json;
window.localStorage.setItem(o);
}
function getItem(id) {
return window.localStorage.getItem('QQ').items[id];
}
function getAllItems() {
return window.localStorage.getItem('QQ').items;
}
function printAllItems() {
var all = getAllItems();
for (id in all) {
console.log(id +" => "+ all[id]);
}
}
答案 1 :(得分:0)
您应该使用数据库而不是存储(用于键值对)。尝试将IndexedDB或Web SQL作为关键字进行谷歌搜索。
答案 2 :(得分:0)
Sencha Touch和Backbone等许多框架都有一些使用localStorage
模拟数据库功能的基本功能。如果您对推出自己的解决方案感到兴奋,我建议您做一些更像这样的事情:
// get the user store
var users = getUsers();
var john = user["john1234"];
// get all of the existing users
function getUsers() {
return JSON.parse(window.localStorage.users) || {};
}
// save users
function saveUsers(users) {
window.localStorage.users = JSON.stringify(users);
}
// add a user
function addUser(user) {
var id = user.id || new Date().getTime();
users[id] = user;
}
所以我的建议不是基于字符串组合事物而是使用标准
将它们分成单独的集合或商店这绝不是您问题的具体答案,但它可能对您有帮助!
答案 3 :(得分:0)
您可以利用localStorage
被视为对象的事实,并执行类似的操作(遍历密钥并检查其名称):
for(dataObj in localStorage) {
if(dataObj.charAt(0) == Q && dataObj.charAt(1) == Q) {
// do whatever with your data object, it starts with QQ
var myObj = localStorage[dataObj];
}
}
您还可以将if语句更改为:
if(dataObj.substr(0,2) == "QQ") { // do your thing
现在没有对substr()
文档的引用,不记得这是否是正确的语法。