• 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))
    
  • 相关阅读:
    JAVA反射机制
    Android插件化
    MFC项目的建立
    [ACM]躲猫猫
    [ACM]某一天的n天后是几年几月几日
    [ACM]括号配对问题
    开发中好用的网站
    TCP与UDP(实时通讯)
    NSSet基本使用
    NSPredicate(正则表达式)
  • 原文地址:https://www.cnblogs.com/omery/p/9970906.html
Copyright © 2020-2023  润新知