首先需要创建一个js对象,用来存储map中的数据
- 创建私有的object对象
function Map() {
var obj = {};
对map几个方法的实现
- java的map中put方法,需要传入key及其value
this.put = function (key, value) {
obj[key] = value;
}
- size方法获取map中属性的个数
this.size = function (){
var count = 0;
for(var o in obj){ //遍历
count++;
}
return count;
}
- get方法根据传入的key获取到对应的value值
- 在这步中需要对key进行判断,在js中的自动转化机制会自动将value中的0,1在if判断句中转化为false或者true
- 还有一种情况是当key所对应的value值本身就为false时 这步的判断返回的就为null
this.get = function (key) {
if (obj[key] || obj[key] === 0 || obj[key] === false) { //防止map中的存储的值为false
return obj[key];
} else {
return null;
}
}
- remove方法根据传入的key删除value值
- 需要对value进行判断
this.remove = function (key) {
if (obj[key] || obj[key] === 0 || obj[key] === false) {
delete obj[key];
}
}
- eachMap方法遍历map
- 该方法在遍历时需要传入函数,对map按照传入函数的方法进行遍历
this.eachMap = function (fn){
for(var o in obj){
fn(o,obj[o]);
}
}
function fn(key,value){
alert(key+ ":"+ value);
}
- 上面代码分别实现了map的添加、删除、遍历、取值、获取大小几个功能,目前还在学习js的过程中,有问题请大佬们多多指点,多谢