一.模拟map
<script type="text/javascript">
function Map(){
//创建一个空对象
var obj = {};
// put 方法存值
this.put = function(key,value){
obj[key] = value;
}
// size 方法获得map容器的个数
this.size = function(){
var count = 0;
for(var attr in obj){
count++;
}
return count;
}
// get 方法 根据key 取得value
this.get = function(key){
if(obj[key] || obj[key] === 0 || obj[key] === false){
return obj[key];
}else{
return null;
}
}
//删除方法,根据key删除
this.remove = function(key){
if(obj[key] || obj[key] === 0 || obj[key] === false){
delete obj[key];
}
}
//遍历map的key(value);
this.foreach = function(fn){
// fn 为回调函数
for(var attr in obj){
fn(attr,obj[attr]);
}
}
}
//实例化map
var m = new Map();
//将键值添加到map中
var m = new Map();
m.put('01', 'abc');
m.put('02', false);
m.put('03', true);
m.put('04', new Date());
//进行测试
alert(m.size());
alert(m.get("03"));
m.remove('03');
alert(m.get('03'));//null
m.foreach(function(key,value){
alert(key + ":" + value);
})
</script>
二、数组去重
<script type="text/javascript">
// 利用在js对象中 key 是永远不会重复的 的去重方法 unique
var arr1 = [1,2,3,4,5,2,1,3]
function toObj(arr){
var obj = {};
for(var i=0,j=arr.length;i<j;i++ ){
obj[arr[i]] = true;
}
return obj;
}
function toArr(obj){
var arr = [];
for(var attr in obj){
if(obj.hasOwnProperty(attr)){
arr.push(attr);
}
}
return arr;
}
// 利用在js对象中 key 是永远不会重复的 的去重方法 unique
function unique(arr){
return toArr(toObj(arr));
}
// 调用方法
// unique(arr1);
alert( unique(arr1));//1,2,3,4,5
</script>