ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で辞書のキーと値のペアをシミュレートする
JavaScript は、以前は 2 次元配列で実装されていたことがよくあります。今日は、Dictionary ヘルプ クラスをシミュレートしました。
原則: キー配列と値配列の 2 つの配列を含むオブジェクトを作成し、JavaScript Array オブジェクト メソッドを呼び出します。
W3C 参照アドレス: http://www.w3school.com.cn/js/jsref_obj_array.asp
BuildDictionary() メソッドは 2 つの配列を含む Dictionary オブジェクトを作成するために使用されます
AddItem メソッドは JavaScript の Array オブジェクトを呼び出しますプッシュ メソッドキーと値を対応する配列に追加するために使用されます。
UpdateItem メソッドは、対応する値を変更するために使用されます。
DeleteItem メソッドは、要素を削除するために呼び出されます。最初のパラメーターは、削除する必要がある要素のインデックスです。削除された要素の数を表します。
GetKeyStrは、Keys配列を連結した後の文字列を取得するために使用されます
GetValueStrは、Values配列を連結した後の文字列を取得するために使用されます
合計5つのメソッドが含まれています:
/*Create Dictionary*/
function BuildDictionary( ) {
dic = new Object();
dic.Keys = new Array(); //key array
dic.Values = new Array(); //value array
return dic;
}
/*追加 key,value*/
function AddItem(key, value, dic) {
var keyCount = dic.Keys.length;
if (keyCount > 0) {
var flag = true;
for (var i = 0; i < keyCount; i++) {
if (dic.Keys[i] == key) {
フラグ = false;
//如果存在则不添加
}
}
if (フラグ) {
dic.Keys.push(key)
dic.Values.push(value);
}
}
else {
dic.Keys.push( key)
dic.Values.push(value);
}
return dic;
}
/*変更key,value*/
function UpdateItem(key, value, dic) {
var keyCount = dic.Keys.length;
if (keyCount > 0) {
var flag = -1;
for (var i = 0; i < keyCount; i++) {
if (dic.Keys[i] == key) {
flag = i ;
休憩; //查找相应的index
}
}
if (flag > -1) {
dic.Keys[flag] = key;
dic.Values[flag] = value;
}
return dic;
}
else {
return dic;
}
}
/*移削除key value*/
function DeleteItem(key, dic) {
var keyCount = dic.Keys.length;
if (keyCount > 0) {
var flag = -1;
for (var i = 0; i < keyCount; i++) {
if (dic.Keys[i] == key) {
flag = i;
Break; //查找相应的index
}
}
if (flag > -1) {
dic.Keys.splice(flag,1); //移除
dic.Values.splice(flag, 1); //移除
}
return dic;
}
else {
return dic;
}
}
/*获取Key文字列,用記号拼接*/
function GetKeyStr(separator,dic)
{
var keyCount =dic.Keys.length;
if(keyCount>0)
{
return dic.Keys.join(separator);
}
else
{
return '';
}
}
/*获取Value文字列,用シンボル拼接*/
function GetValueStr(separator,dic)
{
var keyCount=dic.Keys.length;
if(keyCount>0)
{
return dic.Values.join(separator);
}
else
{
return '';
}
}
使用方法: 全局の变量を作成し、この全局变量を操作することができます。