JavaScript笔记 - Object对象特性的应用
2024-08-31 18:08:57
可以依据js对象中key是永远不会重复的原则,来模拟Map类型以及去除数组重复项。
1、模拟Map类型
(1)构造Map对象
function Map(){
//private
var obj = {}; // 空的对象容器,存放键值对 //put方法
this.put = function (key,value){
obj[key] = value;
}
//get方法
this.get = function(key){
if(obj[key] || obj[key] === 0 || obj[key] === false){
return obj[key];
}else{
return null;
}
}
//remove方法
this.remove = function(key){
if(obj[key] || obj[key] === 0 || obj[key] === false){
delete obj[key];
}
}
//size方法
this.size = function(){
var count= 0;
for(var arr in obj){
count++;
}
return count;
}
//遍历方法,采用回调函数的方式
this.eachMap = function(fn){
for(var arr in obj){
fn(arr,obj[arr]);
}
}
}
(2)测试代码
//模拟java里的Map类型//函数也是一种对象,可以使用new的方式建立函数实例
var m = new Map();
m.put('01','sscs');
alert(m.size());
alert(m.get('01'));
m.remove('01'); //遍历对象元素,传入的参数是一个函数
m.eachMap(function(key,value){
alert(key +":"+value);
});
2、去除数组重复项
(1)实现代码
function unique(arr){
//第一步:把数组中的值,变成js对象中的key
var obj = {}; //私有对象
for( var i = 0,j = arr.length;i<j;i++){
obj[arr[i]] = true;
}
//第二部:再把js对象还原成数组
var arr = [];//私有对象
for(var attr in obj){
if(obj.hasOwnProperty(attr)){
arr.push(attr);
}
}
return arr;
}
(2)测试程序
var arr = [1,1,3,4,5];
alert(unique(arr)); //显示1,3,4,5
最新文章
- Nginx中FastCGI配置优化
- Linuxc:创建与监控多个子进程
- 标准库函数atoi的实现
- 心情闲适,发几个tatanic的图
- uva 816 Abbott的复仇
- 【MySQL】MySQL锁和隔离级别浅析二 之 INSERT
- NSArray函数
- javascript实现Map
- (原)前端知识杂烩(css系列)
- ora-01031:insufficient privileges 解决方案
- JavaScript概要
- Spring MVC ajax:post/get 的具体实现
- 为什么使用dojo?dojo与jquery有什么不同?dojo适合什么开发场景?
- Android简介(一)
- 简单介绍python的双向队列
- Linux文件管理命令 cat
- jQuery(二)button事件改变标签值
- windows定时关机命令
- C语言指针的一些题目
- [Java][Web]解决 Request 的乱码