使用localstorage模擬乙個資料庫的操作(簡化版本)localstorage的每一項就是模擬的每一張二維表
目前僅支援cmd規範,vue等前端框架可以自己對下面的**做一些修改.
;(function(window);
//json字串轉化為物件
function _json2obj(jsonstr)
return window.json.parse(jsonstr);
}//json物件轉化為json字串
function _obj2json(obj)
return window.json.stringify(obj);
}//查詢localstorage中有沒有虛擬的表名
function _hastable(tablename) else
}else
}//從localstorage中獲取值
function _getitem(tablename)
}else
}//向localstorage中存入值
function _setitem(tabledata, tablename) else
}else
}//向新增的每乙個欄位中存入其他字段,以備後期操作,如可刪除標記,可更新標記
function _addparams(newobj) else
}else
return result;
}//根據主鍵檢查表中是不是存在重複值
function _uniquecheck(tabledata,options,objdata)
}return result;
}//從乙個物件中提取出指定的字段值,並返回乙個物件
function _getnewobjectfromobject(obj,paramsarr) ;
for(var item in obj)}}
return newobject;
}//檢查主鍵是不是存在於add方法的paramsarr欄位中
function _hasprimarykey(paramsarr,options)
}if(i == paramsarr.length)
return result;
}//檢查add方法中objdata是不是存在paramsarr中的字段
function _hasparamsindataobj(dataobj,paramsarr)
}return result;
}//檢查函式中的引數是否存在
function _checkparam***ist()
}return result;
}var ltable = ,
/***
* @param tablename 模擬**的名稱
* @param dataobj 增加的物件
* @param paramsarr 要新增到表中的字段
*/add:function (tablename,dataobj,paramsarr) else
}else
}else
}else
}else
},/**
** @param tablename 模擬**的名稱
* @param whereobj 刪除條件,如需全部刪除,請傳入空物件
*/delete:function (tablename,whereobj)
if(_hastable(tablename))
}else
}//不可以執行刪除
if(!deleteflag)else
row = null;
deleteflag = true;
}if(deletenum > 0)else
}else
},/**
** @param tablename 模擬**的名稱
* @param whereobj 更新條件
* @param dataobj 更新資料
*/update:function (tablename,dataobj,whereobj)
if(_hastable(tablename))
}else
}//執行更新
if(updateflag)
}tabledata[i] = row;
updatenum++;
}row = null;
updateflag = true;
}if(updatenum > 0)else
}else
},/**
** @param tablename 模擬**的名稱
* @param whereobj 查詢條件
*/select:function (tablename,whereobj)
var result = ;
if(_hastable(tablename))
}else
}if(selectflag)
row = null;
selectflag = true;}}
return result;
},/**
** @param tablename 模擬**的名稱
*/selectall:function (tablename)
var result = ;
if(_hastable(tablename))
return result;
},/**
** @param tablename 模擬**的名稱
* @param whereobj 查詢條件
*/count:function (tablename, whereobj)
var result = 0;
if(_hastable(tablename))
}else
}if(selectflag)
row = null;
selectflag = true;}}
return result;
},/**
** @param tablename 模擬**的名稱
* @param whereobj 查詢條件
* @param countparam 需要count的字段,乙個字串
*/countbyparam:function (tablename, whereobj,countparam)
var result = 0;
if(_hastable(tablename))
}else
}if(selectflag)
row = null;
selectflag = true;}}
return result;
},/**
** @param tablename 模擬**的名稱
*/droptable:function (tablename)
var result = false;
if(_hastable(tablename))else
},/**
** @param tablename 模擬**的名稱
* @returns
*/createtable:function (tablename) }};
/*目前支援cmd規範,seajs*/
if(window.define && window.define.cmd));
}else
})(window);
NOIp模擬 數列
數列 sequence.pas c cpp 問題描述 雖然msh長大了,但她還是很喜歡找點遊戲自娛自樂。有一天,她在紙上寫了一串數字 1,1,2,5,4。接著她擦掉了乙個1,結果發現剩下1,2,4都在自己所在的位置上,即1在第1位,2在第2位,4在第4位。她希望擦掉某些數後,剩下的數列中在自己位置上...
模擬數學 除法
time limit 1000ms memory limit 65536kb submit statistic problem description blue 最近接了個重活,需要幫助小學生手算大量的除法算術題,這可把他累壞了。但是,機智的 blue 一想,寫個 printf f double a...
NOIp模擬 數對
傳送門 很神的dpdp dp題。首先要確定乙個dpdp dp的順序保證答案的正確性。對於兩個元素,分四種情況討論它們的關係 如果a i bjan db i a i leqslant b j and b i a j ai bj and bi 那麼i ii必須排在j jj的前面。如果a i bj and...