• JavaScript核心对象-数组对象


    在JavaScript中,所有的一切都是对象,为了便于开发工作,JavaScript提供了处理字符串、数学运算、日期和时间、正则表达式和数值等一系列的内置对象,它们都遵从ECMAScript1.0规范,因此在所有平台下这些对象的功能和表现都是一样的。

    数组是一种具有相同类型值的集合,它的每一个值称为数组的一个元素。数组用于在内存中存储大量相同类型的数据,可以通过数组的名称和下标来访问数组中的元素。

    数组的下标也成为索引值,有两种类型的索引值:非负整数和字符串索引值。使用字符串索引值的数组又称为关联数组。数组是JavaScript的一种内置对象。

    声明数组

    和其它变量一样,数组在啊使用之前需要声明,即创建数组对象。声明数组的语法有三种形式:

    var arr = new Array();
    var arr = new Array(n);
    var arr = new Array(e0,e1,e2,...e(m)); 

      

    第一种声明形式声明了一个空的数组,它的元素个数为0;第二种声明形式声明了一个有n个元素的数组,但每一个元素的值还没有定义;第三种声明形式声明了有m个元素的数组,它的各个值依次为e0,e1,e2,...e(m)。例如:

    var arr1 = new Array();                 //创建一个空数组
    var arr2 = new Array(100);              //创建有100个元素的数组
    var arr3 = new Array("red","blue","green",1,2,3);//创建有6个值得数组  
    

      

    JavaScript的数组是动态数组,在声明数组的时候,无论是否值得了数组的元素个数,都可以根据需要调整元素的数量。JavaScript按需要分配内存,动态扩展和压缩数组。数组元素通过下标来访问,下标放在放括号[]中。当数组下标为整数时,下标从0开始计数。

      

    和其它编程语言不同的是,JavaScript数组可以存储任何类型的的值,也就是说,数组中第一个元素可以存储数值,第二个元素可以存储字符串类型的值,第三个元素可以存储对象等等。

    在JavaScript中,可以使用字符串来作为数组的下标来访问数组。通过字符串下标来访问数组称为关联数组。字符串下标通常称为键。下面是一个例子:

    var states = new Array();
    states["京"] = "北京市";
    states["翼"] = "河北省";
    states["豫"] = "河南省";
    states["粤"] = "广东省";
    states["闽"] = "福建省";
    

      

    数组的属性和方法

    数组是JavaScript中的一个对象,它有一组属性和方法。下表是数组的属性:

    属性 含义
    constructor 引用数组对象的构造函数
    length 返回数组元素的个数。如果在创建数组时指定了数组的长度,那么无论数组元素中是否超出了实际数据,该属性的值都是这个指定的长度值
    prototype 用于在定义数组时添加新的属性和方法。Prototype是数组对象的静态属性。

    其中最常用的是length属性,它通常用于在for循环中遍历数组时使用。

    数组提供了12个有用的方法,利用这些方法可以使用数组实现栈操作、数组元素排序、颠倒数组元素、将数值拼接为一个字符串等。下表中列出了这些方法:

    方法 含义
    cancat(value,...) 将两个数组合并为一个新的数组,参数指定的数组的数组元素放在后面。该方法的参数可以是一个数组,也可以是一组值。
    join(separator) 使用指定的分隔符(separator)将数组元素依次拼接起来,形成一个字符串返回。
    push(value,...) 在数组末尾增加一个活多个数组元素(增加的元素数量与参数个数相同),并返回增加元素后的数组长度。该操作相当于数据结构中的入栈操作。
    reverse() 颠倒数组中元素的次序。例如,如果数组中各个元素的值依次为1/2/3/4/5,那么执行reverse()方法之后,数组的值依次为5、4、3、2、1。
    shift() 删除数组的第一个元素,并返回其值,数组的长度减少1.该操作相当于数据结构中的出队列操作。
    slice(start,end) 从现有数组中提取指定个数的数据元素,形成一个新的数组。所提取元素的下标从start开始,到end结束,但不包括end。
    sort(orderfunc)              将数组元素排序。参数orderfunc可选。省略该参数时,按字母顺序或汉字的拼音方式排序。可以使用orderfunc来指定排序方式。orderfunc为排序函数的名称,该函数应该使用两个参数,并返回一个整数值。返回值的要求是:当第一个参数大于第二个参数时,返回值大于0;当第一个参数等于第二个参数时,返回值等于0;当第一个参数小于第二个参数时,返回值小于0。
    splice(start,delteCount,value...)          从start指定的位置开始,删除delteCount个数组元素,然后在删除位置前面添加于value值个数相同的数组元素,并以此将其值设置为value参数指定的值。该函数的功能相当于文本编辑器中的替换功能。
    toLocaleString() 返回数组的本地化字符串表示。
    toString() 返回数组的字符串表示。
    unshift(value,...) 在数组的开始位置增加一些数组元素,增加的数组元素的数量与value参数的个数相同,并依次使用参数value对各数组元素赋值。

    下面是上面常用函数的一些应用示例。

    concat()方法应用示例

    concat()方法将两个数组合并为一个新的数组。

    var arr1 = new Array("红色","蓝色","绿色");
    var arr2 = new Array("粉红色","紫色");
    var arr3 = arr1.concat(arr2);
    document.write(arr3); //合并后的数组arr3为:红色,蓝色,绿色,粉红色,紫色 
    

      

     

    join()方法应用示例

    join()方法使用指定的分隔符将数组元素拼接为一个字符串返回。

    var arr1 = new Array("红色","蓝色","绿色");
    var arr2 = new Array("粉红色","紫色");
    var arr3 = arr1.concat(arr2);
    document.write(arr3.join("-"));//合并后的数组arr3调用join()方法的结果为:红色-蓝色-绿色-粉红色-紫色  
    

      

     

    push()方法应用示例

    push()方法在数组末尾添加一个或多个元素。

    var arr = new Array("红色","蓝色","绿色");
    arr.push("粉红色","紫色");
    document.write(arr); //调用push方法后数组的值为:红色,蓝色,绿色,粉红色,紫色 
    

      

     

    pop()方法应用示例

    pop()方法从数组末尾删除一个元素,并返回其值。

    var arr = new Array("红色","蓝色","绿色");
    var value = arr.pop();
    document.write(arr); //调用pop方法后数组的值为:红色,蓝色
    alert("返回的值为:"+value);  //返回的值为:绿色  
    

      

     

    shift()方法应用示例

    shift()方法从删除数组中的第一个元素,并返回其值。

    var arr = new Array("红色","蓝色","绿色");
    var value = arr.shift();
    document.write(arr); //调用shift方法后数组的值为:蓝色,绿色
    alert("返回的值为:"+value);  //返回的值为:红色 
    

      

     

    unshift()方法应用示例

    unshift()方法在数组第一个元素前面增加一些数组元素。

    var arr = new Array("红色","蓝色","绿色");
    arr.unshift("粉红色","紫色");
    document.write(arr); //调用unshift方法后数组的值为:粉红色,紫色,红色,蓝色,绿色
    

      

     

    sort()方法应用示例

    sort()方法排序数组中的元素,既可以使用默认的方法,也可以自定义排序方法。

     sort() 默认排序

    var arr = new Array("2","11","1","25","12","90","36","28","100");
    arr.sort();
    document.write(arr); //调用默认sort方法后数组的值为:1,100,11,12,2,25,28,36,90

    上面使用的是默认的排序非常,默认方式下,数组以ASCII值的大小来进行排序。我们可以自定义排序的方法,如果需要按照数字的大小来排序,可以像下面这样:

    function mysortfunc(str1,str2){
      return parseInt(str1) - parseInt(str2);
    }
    var arr = new Array("2","11","1","25","12","90","36","28","100");
    arr.sort(mysortfunc);
    document.write(arr); //调用自定义sort方法后数组的值为:1,2,11,12,25,28,36,90,100
    

      

     

    reverse()方法应用示例

    reverse()方法颠倒数组中的所有元素。

    var arr = new Array("2","11","1","25","12","90","36","28","100");
    arr.reverse();
    document.write(arr); //调用reverse方法后数组的值为:100,28,36,90,12,25,1,11,2
    

      

     

    slice()方法应用示例

    slice()方法将一个数组中的部分元素复制到一个新的数组中。它的第一个参数指定从哪个下标开始复制数组,第二个参数指定复制结束的数组元素下标,slice()方法不复制第二个参数指定的元素。

    var arr = new Array("Sun","Mon","Tues","Wed","Thurs","Fri","Sat");
    var sliceArr = arr.slice(1,3); //从下标1开始,截取到下标为3的元素,不包括下标为3的元素
    document.write(sliceArr); //调用slice方法后数组的值为:Mon,Tues
    

      

     

    splice()方法应用示例

    splice()方法从指定的数组下标开始删除指定个数元素,然后可以使用一组新的数组元素代替被删除的元素。该方法第一个参数指定开始的数组下标,第二个参数指定要删除的元素个数,后面的参数为要插入的元素。

    var arr = new Array("Sun","Mon","Tues","Wed","Thurs","Fri","Sat");
    arr.splice(1,3,"星期一","星期二","星期三");//从下标1开始,删除3个元素,并将后面参数指定的元素插入到删除的位置
    document.write(arr); //调用slice方法后数组的值为:Sun,星期一,星期二,星期三,Thurs,Fri,Sat
    

      

     
  • 相关阅读:
    linux安装
    ajax基础------备忘
    jquery简单入门1
    在jsp页面如何获得url参数
    MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
    springmvc.xml和applicationContext.xml配置的特点
    1.更改当前工作目录
    0.学习资料
    13.git别名
    12.打标签
  • 原文地址:https://www.cnblogs.com/dadayang/p/5870821.html
Copyright © 2020-2023  润新知