如下你可以做些什么。为每一行创建一个对象。并保留管理员id中的数组byAdminId
以及针对应用程序ID的对象byAppId
,add
函数在后面执行此操作。 getByAppId
和getByAdminId
用于检索这些对象的函数。
var store = (function() {
var byAdminId = [];
var byAppId = {};
return {
add: function(appId, adminId, url, status) {
var d = {
appId: appId,
adminId: adminId,
url: url,
status: status
};
if (appId in byAppId) { // You could also use byAppId.hasOwnProperty(appId) here
byAppId[appId].push(d);
} else {
byAppId[appId] = [];
byAppId[appId].push(d);
}
byAdminId[adminId-1] = d;
},
getByAppId: function(appId) {
if (appId in byAppId) {
return byAppId[appId];
}
return null;
},
getByAdminId: function(adminId) {
return byAdminId[adminId-1];
}
};
})();
store.add(123, 1, "abc.com", 1);
store.add(123, 9, "xyz.com", 0);
store.add(539, 3, "exmaple.com", 1);
store.add(876, 4, "new.com", 1);
var objs = store.getByAppId(123);
for (var i = 0; i < objs.length; i++) {
// access admin id as follows
// objs[i].adminId
}
var obj = store.getByAdminId(1);
// access the url and status as follows
// obj.url
// obj.status
谢谢..我也在思考相同的线..主要关注的是锁定速度很快。 – chirag 2011-12-28 09:09:23
不客气。 – 2011-12-28 14:16:31