JS가 구현한 MAP
9585 단어 map
Array.prototype.remove = function(s) {
for (var i = 0; i < this.length; i++) {
if (s == this[i])
this.splice(i, 1);
}
}
/**
* Simple Map
*
*
* var m = new Map();
* m.put('key','value');
* ...
* var s = "";
* m.each(function(key,value,index){
* s += index+":"+ key+"="+value+"
";
* });
* alert(s);
*
* @author dewitt
* @date 2008-05-24
*/
function Map() {
/** ( ) */
this.keys = new Array();
/** */
this.data = new Object();
/**
*
* @param {String} key
* @param {Object} value
*/
this.put = function(key, value) {
if(this.data[key] == null){
this.keys.push(key);
}
this.data[key] = value;
};
/**
*
* @param {String} key
* @return {Object} value
*/
this.get = function(key) {
return this.data[key];
};
/**
*
* @param {String} key
*/
this.remove = function(key) {
this.keys.remove(key);
this.data[key] = null;
};
/**
* Map,
*
* @param {Function} function(key,value,index){..}
*/
this.each = function(fn){
if(typeof fn != 'function'){
return;
}
var len = this.keys.length;
for(var i=0;i<len;i++){
var k = this.keys[i];
fn(k,this.data[k],i);
}
};
/**
* ( Java entrySet())
* @return {key,value}
*/
this.entrys = function() {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : this.keys[i],
value : this.data[i]
};
}
return entrys;
};
/**
* Map
*/
this.isEmpty = function() {
return this.keys.length == 0;
};
/**
*
*/
this.size = function(){
return this.keys.length;
};
/**
* toString
*/
this.toString = function(){
var s = "{";
for(var i=0;i<this.keys.length;i++,s+=','){
var k = this.keys[i];
s += k+"="+this.data[k];
}
s+="}";
return s;
};
}
function testMap(){
var m = new Map();
m.put('key1','Comtop');
m.put('key2',' ');
m.put('key3',' ');
alert("init:"+m);
m.put('key1',' ');
alert("set key1:"+m);
m.remove("key2");
alert("remove key2: "+m);
var s ="";
m.each(function(key,value,index){
s += index+":"+ key+"="+value+"
";
});
alert(s);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React Native Mapbox(v10) 설치이 글에서는 React Native에서 지도를 통합하기 위한 도구로 Mapbox(v10)를 사용하는 기본 사항에 대해 알아봅니다. 나는 iOS와 Android 모두에서 완벽하게 작동하는 mapbox를 선호합니다. "...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.