/*
* MAP オブジェクト、MAP 関数を実装
*
* インターフェイス:
* size() MAP 要素の数を取得します
* isEmpty() MAP は空です
* clear() MAP のすべての要素を削除します
* put(key, value) 要素 (key, value) を MAP に追加します
* Remove(key) 指定された要素を削除しますKEY、成功した場合は True を返し、失敗した場合は False を返します。
* get(key) 指定された KEY の要素値 VALUE を取得します。失敗した場合は NULL を返します。
* element(index) 指定されたインデックスにある要素を取得します (使用element.key、element.value を使用して KEY と VALUE を取得します)、失敗した場合は NULL を返します
* containsKey(key) MAP に指定された KEY の要素が含まれているかどうかを判断します
* containsValue(value) MAP に次の要素が含まれているかどうかを判断します指定された VALUE の要素
* value() MAP 内のすべての VALUE を取得します 配列 (ARRAY)
* Keys() MAP 内のすべての KEY の配列 (ARRAY) を取得します
*
* 例:
* var map = new Map();
*
* map.put("key", "value");
* var val = map.get("key"); 🎜>* ……
*
*/
function Map() {
this.elements = new Array();
//MAP 要素の数を取得
this.size = function () {
return this.elements.length;
};
//MAP が空かどうかを判断します
this.isEmpty = function() {
return (this .elements .length
};
//MAP のすべての要素を削除します
this.clear = function() {
this.elements = new Array();
};
//要素 (キー、値) を MAP に追加します
this.put = function(_key, _value) {
this.elements.push( {
key : _key ,
value : _value
});
};
// 指定された KEY の要素を削除し、成功した場合は True、失敗した場合は False を返します
this.removeByKey = function(_key) {
var bln = false;
try {
for (i = 0; i
if (this.elements[i ].key == _key) {
this.elements.splice(i, 1);
return true;
}
} catch (e) {
bln = false;
}
return bln;
};
// 指定された VALUE の要素を削除し、成功した場合は True、失敗した場合は False を返します
this.removeByValue = function( _value) {//removeByValueAndKey
var bln = false;
try {
for (i = 0; i if (this.elements[i ].value == _value) {
this.elements.splice(i, 1);
return true;
}
} catch (e) {
bln = false;
}
return bln;
// 指定された VALUE の要素を削除し、成功した場合は True、失敗した場合は False を返します
this.removeByValueAndKey = function( _key,_value) {
var bln = false;
try {
for (i = 0; i if (this.elements[i] .value == _value && this.elements[i ].key == _key) {
this.elements.splice(i, 1)
return
}
}
} catch (e) {
bln = false;
}
return
} // 指定された KEY の要素値 VALUE を取得し、NULL を返します。失敗
this.get = function(_key) {
try {
for (i = 0; i if (this.elements[i] .key == _key) {
return this.elements[ i].value;
}
} catch (e) {
return false; return false;
};
/ / 指定されたインデックスの要素を取得します (KEY と VALUE を取得するには element.key、element.value を使用します)、失敗した場合は NULL を返します
this.element = function(_index) {
if (_index < 0 || _index > = this.elements.length) {
return null;
}
return this.elements[_index]; >};
//指定された KEY 要素が MAP に含まれているかどうかを判断します
this.containsKey = function(_key) {
var bln = false;
for ( i = 0; i
if (this.elements[i].key == _key) {
}
}
} catch (e) {
bln = false;
}
return
}; MAP に指定された VALUE this.containsValue = function(_value) {
var bln = false;
try {
for (i = 0; i if ( this.elements[i].value == _value) {
bln = true;
}
} catch (e) {
bln = false; >return bln;
};
//指定された VALUE が含まれるかどうかを判定します
this.containsObj = function(_key,_value) {
var bln = false; >try {
for (i = 0; i if (this.elements[i].value == _value && this.elements[i].key = = _key) {
bln = true;
}
}
} catch (e) {
bln = false;
return
};
//MAP 内のすべての VALUE の配列 (ARRAY) を取得します
this.values = function() {
var arr = new Array()
for (i = 0; i
arr.push(this.elements [i].value);
//MAP 内のすべての VALUE の配列 (ARRAY) を取得します。
this.valuesByKey = function(_key ) {
var arr = new Array()
for (i = 0; i < this.elements.length; i ) {
if (this.elements[i].key == _key ) {
arr.push(this.elements[i].value); >}
return arr;
// KEY の MAP 配列のすべての項目を取得します (ARRAY)
this.keys = function() {
var arr = new Array();
for (i = 0; i arr.push(this.elements[i].key);
return arr;
};
//値を介してキーを取得します
this.keysByValue = function(_value) {
var arr = new Array(); ; i < this.elements.length; i ) {
if(_value == this.elements[i].value){
arr.push(this.elements[i].key); >}
}
return arr;
//MAP 内のすべての KEY の配列を取得 (ARRAY)
this.keysRemoveDuplicate = function() {
var arr = new Array();
for (i = 0; i var flag = true;
for(var j=0;jif(arr[j] == this.elements[i].key){
flag = false;
}
}
if (フラグ){
arr.push(this.elements[i].key)
}
}
return
}
;