Javacriptでカスタマイズしたmap.js の方法
jsにはmapという種類がないので、自分で書くしかないです。以下のmap.jsとmap-util.jsはすべてカスタムのmapで、その一つを選んでください。javaのnew Map()やput()、Remove()、get()などのような方法を使ってもいいです。
map.js:
以上、小编でご绍介したJavacriptのカスタムmap.jsです。 皆さんに何か質問があれば、メッセージをください。編集者はすぐに皆さんに返事します。
map.js:
function Map() {
var struct = function(key, value) {
this.key = key;
this.value = value;
}
var put = function(key, value){
for (var i = 0; i < this.arr.length; i++) {
if ( this.arr[i].key === key ) {
this.arr[i].value = value;
return;
}
}
this.arr[this.arr.length] = new struct(key, value);
}
var get = function(key) {
for (var i = 0; i < this.arr.length; i++) {
if ( this.arr[i].key === key ) {
return this.arr[i].value;
}
}
return null;
}
var remove = function(key) {
var v;
for (var i = 0; i < this.arr.length; i++) {
v = this.arr.pop();
if ( v.key === key ) {
continue;
}
this.arr.unshift(v);
}
}
var size = function() {
return this.arr.length;
}
var isEmpty = function() {
return this.arr.length <= 0;
}
this.arr = new Array();
this.get = get;
this.put = put;
this.remove = remove;
this.size = size;
this.isEmpty = isEmpty;
}
map-util.js:
function Map() {
this.elements = new Array();
var i;
// MAP
this.size = function() {
return this.elements.length;
};
// MAP
this.isEmpty = function() {
return (this.elements.length < 1);
};
// MAP
this.clear = function() {
this.elements = new Array();
};
// MAP (key, value)
this.put = function(_key, _value) {
this.elements.push( {
key : _key,
value : _value
});
};
this.putFirst = function(_key, _value){
var tempList = this.elements;
this.elements = new Array();
this.elements.push( {
key : _key,
value : _value
});
for(var i=0;i<tempList.length;i++){
this.elements.push(
tempList[i]
);
}
}
// KEY , True, False
this.remove = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
// KEY VALUE, NULL
this.get = function(_key) {
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
} catch (e) {
return null;
}
};
// ( element.key,element.value KEY VALUE), NULL
this.element = function(_index) {
if (_index < 0 || _index >= this.elements.length) {
return null;
}
return this.elements[_index];
};
// MAP KEY
this.containsKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
// MAP VALUE
this.containsValue = function(_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
// MAP VALUE (ARRAY)
this.values = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].value);
}
return arr;
};
// MAP KEY (ARRAY)
this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
};
}
締め括りをつける以上、小编でご绍介したJavacriptのカスタムmap.jsです。 皆さんに何か質問があれば、メッセージをください。編集者はすぐに皆さんに返事します。