JS对象

129 阅读2分钟

JS对象

js对象的特点

js是基于原型的面向对象语言,只有面向对象的部分特征;没有接口。
js函数本身也是对象。
js对象的属性和方法,可以在运行期间动态的添加和删除。

js对象创建

var obj = new Object();
    //添加属性
    obj.name = "张三";
    obj.age = 20;
    
    //添加方法
    obj.speak = function (){
        alert("说话")
    }
    alert(obj.name+"   "+obj.age);
    obj.speak()
    
    //删除 obj对象的 age属性
    delete obj.age;
    alert(obj.name+"   "+obj.age)
    

js对象属性的访问:

	alert(obj.name);
	alert(obj["name"]);

遍历对象中所有的属性:

	for (var fieldName in obj){
        console.log(fieldName+"   "+obj[fieldName]);
    }
    

json对象:

json对象定义:
        //创建没有任何属性的对象
        var jsonObj = {}; //等价于 var jsonObj = new Object();
        //定义拥有 name和 age属性的对象
        var jsObj = {name: "李四", age: 18};

json对象和json字符串转换:
        //将js对象,以json字符串方式进行显示
        alert(JSON.stringify(jsObj));
        var str = "{\"name\":\"王五\",\"age\":24}";
        //将json字符串转化为json对象
        var jObj = JSON.parse(str);
        alert(jObj.name+"   "+jObj.age);

js数组

js数组的创建:

//创建长度为0的数组
var arr = new Array();
//在数组尾部添加元素
arr.push("abc");
arr.push(23);
console.log(arr);
    
    
//创建长度为0的数组
var ar = [];
//创建有初始值的数组,数组长度为初始值的个数
var array = [4,5,6,"ddd"];
//array.length:得到数组长度
console.log(array+"   "+array.length);

//给第9个元素赋值,长度自动扩展到9个元素,没赋值的元素为undefined
array[8] = 9;
console.log(array[6]+"   "+array.length);

js数组的长度:

js数组的长度采用length属性表示。length属性是可以修改的。当length属性赋值为0时,表示清空数组。

js数组常见的操作:

添加元素:
    array.push("abc");
    
删除元素:
    var array = [1,2,3,4,5];
    //从下标为2开始,删除一个元素,返回删除的元素集合
    var x = array.splice(2,1);
    
插入元素:
    //从下标为2开始,删除0个元素,添加"abc"元素
    array.splice(2,0,"abc");
    console.log(array);
    
替换元素:
    //从下标为2开始,删除2个元素,添加"abc"元素
    array.splice(2,2,"abc");
    console.log(array);
    

json数组:

定义:
     var studentArray = [{name:"张三",age:22},{name:"李四",age:20},{name:"王五",age:19}];
    
遍历:
    for (var i = 0; i < studentArray.length; i++) {
    console.log(studentArray[i].name+"   "+studentArray[i].age);
    }
    
    //forEach遍历,n表示集合中的元素
    studentArray.forEach(n =>{
        console.log(n.name+"   "+n.age);
    })
    
查找元素的下标:
    //找到“李四”所在下标
    var index = studentArray.findIndex(n => n.name == "李四");
    console.log(index);
    
查找数组元素:
    //查找“李四”信息
    var obj = studentArray.find(n => n.name == "李四");
    console.log(obj);
		
筛选数组元素:
    //筛选姓“李”的学生
    var newArray = studentArray.filter(n => n.name.startsWith("李"));
    console.log(newArray);
		
排序:
    //排序:按年龄排序。其中a和b表示数组中的两个元素
    studentArray.sort((a,b) => a.age - b.age);
    console.log(studentArray);
		
map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,map()方法按照原始数组元素顺序依次处理元素。

    //将数组元素中的name属性,重新创建一个新数组
    var arr = studentArray.map(n => n.name);
    console.log(arr);