JavaScript数组的方法

作者: 简约酒馆 | 来源:发表于2019-11-03 20:13 被阅读0次


    数组定义

    数组是值的有序集合

    javascript数组是无类型的;数组元素可以是任意类型,并且同一个数组的不同元素也可能有不同的类型。

    每个值叫做一个元素,而每个元素在数组中有一个位置

    创建数组

    1.使用数组直接量是创建数组最简单的方式,在方括号中将数组元素用逗号隔开即可。数组直接量中的值不一定要是常量,可以是任意的表达式。

    如果省略数组直接量中的某个值,省略的元素将被赋予undefined值 [1,,3]

    数组直接量的语法允许有可选的结尾的逗号,故[,,]只有两个元素而非三个。

    2.调用构造函数Array()是创建数组的另外一种方法。可以用三种方式调用构造函数。

    1.调用时没有参数:

    var a = new Array();该方法创建一个没有任何元素的空数组,等同于数组直接量[]。

    2调用时有一个数值参数,它指定长度:

    var a = new Array(10)

    当预先知道所需元素个数时,这种形式的Array()构造函数可以用来预分配一个数组空间。

    3显示指定一个或多个数组元素或者数组的一个非数值元素:

    var a = new Array(5,4,3,2,1,“test”);

    以这种形式,构造函数的参数将会成为新数组的元素。使用数组字面量比这样使用Array()构造函数要简单多了。

    数组元素的读和写

    使用[]操作符来访问数组元素中的一个元素。数组的引用位于方括号的左边。方括号中是一个返回非负整数值的任意表达式。使用该语法既可以读,也可以写数组的一个元素。

    1.通过指定数组名以及索引号码,你可以访问某个特定的元素。

                                              mycars[ 0 ]

    2.如需修改已有数组中的值,只要向指定下标号添加一个新值即可;

    数组长度

    定义:length 属性可设置或返回数组中元素的数目。(从1开始)

    数组的 length 属性总是比数组中定义的最后一个元素的下标大 1。对于那些具有连续元素,而且以元素 0 开始的常规数组而言,属性 length 声明了数组中的元素的个数。

    数组的 length 属性在用构造函数 Array() 创建数组时被初始化。给数组添加新元素时,如果必要,将更新 length 的值。

    设置 length

    属性可改变数组的大小。如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined。

    检测数组

    1.运用instanceof运算符来判断一个对象是不是数组

          instanceof 是一个二元运算符,左边操作数是一个对象,不是的话返回false,右边操作数是一个函数对象或者函数构造器,不是的话返回false。原理是通过判断左操作数的对象的原型链上是否具有右操作数的构造函数的prototype属性。

    arr.instanceof Array

    2可以使用Array.isArray(arr) 

          这个ES5新增的一个Array方法,该方法是Array对象的一个静态函数,用来判断一个对象是不是数组。

    push()尾添

      push()方法可向数组的末尾添加一个或多个元素,并返回新的长度

    join()  

    join()方法将数组中所有元素都转化为字符串并且连接在一起,返回最后生成的字符串。可以指定一个可选的字符串在生成的字符串中来分隔数组的各个元素。如果不指定分隔符,默认使用逗号

    reverse()

    将数组中元素的顺序颠倒,返回逆序的数组

    sort()

    将数组中的元素进行排序,并且返回排序后的数组。

    语法:

        arr.sort(sortby)(数字也是按字母表排序,因此只能自定义函数排序!)

          sortby 可选。规定排序顺序。必须是函数。

    若不带参数调用sort(),将按字母表进行排序。

            Eg:var a = [“aa”,”cc”,”bb”];

            a.sort();

      vars =a.join(“,”);

    想让其按我们的方式排序,则需要传入比较函数

    如果数组包含undefined值,将放到数组尾部。

     vara= [1111,2022,33,4,555];

        a.sort(sortNumber)

        functionsortNumber(a,b){

          return a - b

        }

            该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两

    个参数 a 和 b,其返回值如下:

             若a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

             若a 等于 b,则返回 0。

             若a 大于 b,则返回一个大于 0 的值。

             通俗来讲:就是a>b时,也就是return返回值大于0时,俩数交换;否则不交换;

    slice()

    slice()方法返回指定数组的一个片段或子数组,它的两个参数分别指定片段的开始和结束的位置(不包含该元素)。

    splice()

    splice() 方法用于插入、删除或替换数组的元素。并返回删除的部分数组。

    unshift()和shift()

    类似于push()和pop(),不一样的是unshift()和shift()是在数组的头部而非尾部进行元素的插入和删除操作。unshift()在数组的头部添加一个或多个元素,最后返回数组新的长度。shift()删除数组的第一个元素并将其返回。

    数组遍历

    使用for循环是遍历数组元素最常见的方法

    for/in循环(类似于for,但又有一些区别)

        语法:for(var a in arr){

                         console.log(arr[a]);

      }

    多维数组

    javascript不支持真正的多维数组,但可以用数组的数组来近似

    访问数组中特定的数值代码为arr[x][y]

    相关文章

      网友评论

        本文标题:JavaScript数组的方法

        本文链接:https://www.haomeiwen.com/subject/ymclbctx.html