JavaScript对象与数组

在这里插入图片描述

对象

对象是面向对象编程的核心概念,它是已经命名的数据集合。

创建对象

JavaScript中,对象是new运算符生成,生成对象的函数被称为类(构造函数、对象类型)生成的对象被称为类的实例,简称为对象。

var o = new Object();              //构造原型对象
var data = new Date();             //构造日期对象
var ptn = new RegExp("ab+c","i");  //构造正则表达式对象

也可以通过大括号定义对象直接量。

{
    name : value,
    name1 : value.
    ......
}

对象直接量是由一个列表构成,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开,整个列表包含在打括号内

var point = {
    x:2.1,
    y:-1.2
}

访问对象

可以通过点号运算符(.)来访问对象的属性

var point = {
    x:2.3,
    y:-1.2
};
var x = point.x;

对象的属性值可以是简单的值也可以是复杂的值,比如函数、对象
当属性值为函数时,此属性就被称为对象的方法,使用小括号就可以访问该方法。

用点运算符访问对象point的f的属性,然后使用小括号调用对象的方法f()

var point = {
    f : function(){
        return this.y;
        },
    y : -1.2
};
var y = point.f()
var point = {
    x : {
        a : 1,
        b : 2
        },
    y : -1.2
};
var a = point.x.a;

可以使用集合运算符([ ])来访问对象的属性使用字符串下标来表示属性。

var point = {
    x : {
        a : 1,
        b : 2
        },
    y : -1.2    
};
var a = point["x"]["a"];

下标字符串是对象的属性名,属性名必须加上引号,表示为下标为下标字符串

数组

对象是无序的数据集合,而数组是一组有序数据集合。它们之间可以互相转换,但是数组拥有大量方法,适合完成一些复杂的运算。

定义数组

定义数组通过构造函数Array()和运算符new来实现。

(1)定义空数组

var a = new Array();

这种方式定义的数组是一个没有任何元素的空数组

(2)定义带有参数的数组

var a = new Array(1,2,3,"4","5");

数组中每个参数都表示数组的一个元素值,数组的元素没有类型限制。通过数组下标来定位每个元素。通过数组的length属性确定数组的长度

(3)定义指定长度的数组

var a = new Array(6);

这种方式定义的数组拥有指定的元素个数,但是没有为元素初始化赋值,这时它们的初始值都是undefined
定义数组时,可以省略new运算符,直接使用Array()函数来实现。

var a = new Array(6);
var a = Array(6);

(4)定义数组直接量

var a = [1, 2, 3, "4", "5"];

使用中括号运算符定义的数组被称为数组直接量,使用数组直接量定义数组要比使用Array()函数定义数组速度更快,操作更方便。

存取元素

使用 [ ] 运算符可以存取数组元素的值。在方括号左边是数组的引用,方括号内是非负整数值的表达式。

var a = [1, 2, 3, "4", "5"];
alert(a[2]);

以下方式可以修改元素的值:

var a = [1, 2, 3, "4", "5"];
a[2] = 2;
alert(a[2]);

使用数组的length属性和数组下标,可以遍历数组元素,从而实现动态控制数组元素。

var str = "";
var a = [1, 2, 3, 4, 5];
for(var i = 0 ; i < a.length; i ++){
    str += a[i] + "-";
}
document.write(a + "<br />");
document.write(str);

在这里插入图片描述

通过改变数组的length属性来实现

var a = [1, 2, 3, 4, 5];
a.length = 4;
document.write(a);

当改变数组的长度时,会自动在数组的末尾增加或删除元素,实现改变数组的大小。
使用delete运算符可以删除数组元素的值,但时不会改变length属性的值。

使用push()和pop()方法来操作数组

使用push()方法可以在数组的末尾插入一个或多个元素,使用pop()方法可以依次把它们从数组中删除。

var a = [];
a.push(1,2,3);   //a[1, 2, 3]
a.push(4,5);     //a[1, 2, 3, 4, 5]
a.pop();         //a[1, 2, 3, 4] 

push()可以带多个任意类型的参数,它们按顺序被插入到数组的末尾,并返回操作后数组的长度。而pop()方法不带参数,并返回数组中最后一个元素的值。

使用unshift()和shift()方法

unshift()和shift()方法与push()和pop()方法操作类似,但是作用于数组的头部。

var a = [];
a.unshift(1, 2, 3);    //a[1, 2, 3]
a.unshift(4, 5);       //a[4, 5, 1, 2, 3]
a.shift();             //a[5, 1, 2, 3]

使用splice()方法

该方法是一个通用删除和插入元素的方法,它可以在数组指定的位置开始删除或插入元素。
splice()方法包含三个参数:第一个参数指定插入的起始位置,第二个参数指定要删除元素的个数,第三个参数开始表示插入的具体元素。

使用splice()方法从第二个元素后开始截取2个元素,然后把这个截取的新子数组([3,4])赋予给变量b,而原来的数组a的值为
[1,2,5,6]

var a = [1, 2, 3, 4, 5, 6];
var b = a.splice(2,2);
document.write(a + "<br />");     //[1,2,5,6]
document.write(b);                //[3,4]

使用splice()方法从第2个元素后面开始截取2个元素,然后把这个截取的新子数组([3,4])赋予给变量b,而原来的数组a的值为[1,2,7,8,9,5,6]

var a = [1,2,3,4,5,6];
var b = a.splice(2,2,7,8,9);
document.write(a + "<br />");
document.write(b);

数组应用

数组与字符串互转

使用Array对象的join()方法可以把数组转换为多种形式的字符串。join()方法包含一个参数吗,用来定义合并元素的连字符。如果join()方法不提供参数,则默认以逗号连接每个元素。

var a = [1,2,3,4,5];
a = a.join("-");
document.write("a 类型 = " + typeof(a) + "<br />");
document.write("a 的值 = " + a);

在这里插入图片描述
使用split()方法可以把字符串劈开为一个数组,该方法包含两个参数:第1个参数指定劈开的分隔符,第2个参数指定返回数组的长度。

var a = [1,2,3,4,5];
a = a.join("-");
document.write("s 类型 = " + typeof(s) + "<br />");
document.write("s 的值 = " + s);

在这里插入图片描述

数组排顺

使用reverse()方法可以颠倒数组元素的顺序。

var a = [1,2,3,4,5];
var a = a.reverse();
document.write(a);         //[5,4,3,2,1]

sort()方法能够对于数组中的元素进行排序,排序的方法通过通过参数来决定。这个参数是一个比较两个元素值得闭包。如果省略参数,则sort()方法将按默认得规则对数组进行排序。

var a = [3,2,5,1,4];
var f = funcation(x,y){
    return y-x;
};
var b = a.sort(f);
document.write(b);          //[5,4,3,2,1]

连接数组

concat()方法能够把该方法中得参数追加到指定数组中,形成一个新的连接数组。

var a = [1,2,3,4,5];
var b = a.concat(4,5);
document.write(b);       //[1,2,3,4,5,4,5]

如果concat()方法中得参数包含数组,则把数组元素展开添加到数组中。

var a = [1,2,3,4,5];
var b = a.concat([4,5],[1,[2,3]]);
document.write(b);                //[1,2,3,4,5,4,5,1,2,3]

截取子数组

slice()方法将返回数组中指定的片段,片段就是数组的一个子数组。此方法包含两个参数,它们指定要返回子数组在原数组中的起止点。其中第一个参数指定的元素是被截取的范围之内,而第二个参数指定的元素不被截取。

var a = [1,2,3,4,5,6,7,8,9];
var b = a.slice(2,5);
document.write(b);           //[3,4,5]

人生漫漫其修远兮,网安无止境。
一同前行,加油!

猜你喜欢

转载自blog.csdn.net/qq_45924653/article/details/108333026