jsの2つの小さい例、js配列削除指定要素とjsはMAP構造を実現する.
4093 ワード
トップページには簡単なものがあります.javascriptはデータ構造の対象を提供しています.Arayは添加方法だけがありますが、元素下の表に対して要素の削除を行ってはいけません.コードをかけましょう
Array.prototype.del=function(n) { //n , 0 。
//prototype , 。
if(n<0) // n<0, 。
return this;
else
return this.slice(0,n).concat(this.slice(n+1,this.length));
/*
concat : , 。
this.slice(0,n)/this.slice(n+1,this.length)
, , n 。
slice : , , 。
*/
}
//
var test=new Array(0,1,2,3,4,5);
test=test.del(3); // 0 , 4 。
alert(test);
二つ目はjavascriptでMAP構造を定義します.多くも言わないで、直接コードをつけてゆっくり研究します.function Map() {
this.elements = new Array();
// 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
});
};
// 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;
};
}
このようなMapはどう使いますか?同じ、Map map=new Map();OKはこれから直接にmapで定義された方法を呼び出すことができます.