javaScript(Object)

Object类型---基础


所有类的基础类(Object)

//创建方法(实例化对象):
var obj = new Object();//方式一
var obj={};//方式二

//对象设置属性
obj.name='张三';
obj.age=18;
obj['sex'] = '男';//属性赋值的另一种方式
obj.talk=function(){
    alert("我了个去%^^#^@.....")
}

//对象的属性或方法的调用
alert(obj.name)
alert(obj.age)
obj.talk();

//delete(删除对象的属性或方法)
delete obj.age;
delete obj.talk()

//如何遍历一个js对象,for in 语句
for(var attr in obj){
    alert(attr);//对象的属性
    alert(obj[attr])//对象的属性的值
}

Object每个实例都有的属性和方法:

方法|描述|
--|:--😐--
constructor|保存着用于创建当前对象的函数(构造函数)
hasOwnProperty(propertyName)|用于检查传入的属性是否存在于当前实例对象中(而不是原型对象),返回true或false
isPrototypeOf(Object)|用于检查传入的对象是否是另一个对象的原型,检测原型的方法
propertyIsEnumerable(propertyName)|用于检查传入的属性是否能被for in 所枚举出来
toLocaleString()|返回对象的字符串,该字符串与执行环境的地区对应
toString()|返回对象的字符串
valueOf()|返回对象的字符串、数值或布尔值

用js模拟JAVA的Map

var m =  new Map();
	m.put('01','zhangsan');
	m.put('02','nan');
	m.put('03','20');
	m.put('04','java');
	
function Map(){
	var obj = {};//空对象容器,承装键值对
	//put方法
	this.put=function(key,value){
		obj[key]=value;//把键值对绑定到obj
	} 
	//size方法
	this.size=function(){
		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;
		}
	}
	//删除方法
	this.remove=function(key){
		if(obj[key]||obj[key]===0||obj[key]===false){
			delete obj[key];
		}
	}
}
	//执行
	alert(m.size())
	alert(m.get('03'))
	m.remove('03')    

利用JS对象的特性,去掉数组总的重复项

思路:

  • 1.将数组转化为对象
  • 2.把数组中的值,变为JS对象中的key
  • 3.把对象还原为数组
//将数组转化为JS对象
function toObject(arr){
	var obj = {};//私有化空对象
	var j;
	for(var i=0, j=arr.length;i<j;i++){
		obj[arr[i]]=true;
	}
	return obj;
}

//将对象还原为数组
function keys(obj){
	var arr = [];//私有化空对象
	for(var attr in obj){
		if(obj.hasOwnProperty(attr)){
			arr.push(attr);
		}
	}
	return arr;
}

//调用
var arr = [2,4,5,22,2,5,22]


function changge(arr){
	return	keys(toObject(arr)); 
}
alert(changge(arr))
posted @ 2018-11-16 18:34  Omery  阅读(166)  评论(0编辑  收藏  举报