JS中关于数组的内容

时间:2023-03-09 16:56:22
JS中关于数组的内容

  前  言

LIUWE

   在网站制作过程中,数组可以说是起着举足轻重的地位。今天就给大家介绍一下数组的一些相关内容。例如:如何声明一个数组和在网站制作过程中我们常用的一些数组的方法。介绍的不好还请多多包涵。。。

  首先我们应该先了解一下什么是数组,数组的基本概念是什么?

  1、定义:数组是在内存空间中连续存储的一组有序数据的集合。

  2、元素在数组的顺序为下标,可以使用下标访问数组的每一个元素。

一、如何声明一个数组?

  1、使用字面量声明: 

    var arr=[]; //声明了一个空的数组

  2、使用new关键字声明:

    var arr=new Array(1,2,3,4,5,6,7,8);  //使用new关键字声明了一个数组

  3、数组中参数应该注意的事项:

(1)、同一个数组中,可以存储各种数据类型。

    var arr=[1,"liu",true,{},null,function];  //次数组中的数据类型有数值型,boolean类型,对象,函数等。

(2)、数组中的参数是可以省略的,省略之后表示创建了一个空数组

(3)、当数组中的参数固定之后,表示创建了一个长度为指定长度的数组,但这个长度是可变可追加的。

二、数组中常用的一些方法

  1、join("分隔符号"); 表示将数组用指定分隔符连接为字符串,当参数为空时,默认用逗号分隔

  2、concat(); 表示将多个数组进行连接,形成一个新的数组,原数组将不会发生变化。要注意的是:concat连接时如果有二维数组,至多能拆一层中括号

    [1,2].concat([3,4],[5,6]);  //其显示结果为   [1,2,3,4,5,6]
    [1,2].concat([3,4,[5,6]]); //其结果显示为 [1,2,3,4,[5,6]]

  3、arr.push(值); 表示在数组的最后一个位置新增一个值。 arr.pop();删除数组的最后一个值。

  4、arr.unshift(值); 表示在数组的第0个位置新增一个值。  arr.shift();删除数组的第一个值。

  5、reverse(); 表示将数组反转,倒序输出,原数组会发生改变。

  6、slice(begin,end); 表示截取数组中的某一部分,并返回截取的新数组,原数组不会被改变。其要注意的是:接收两个参数

(1)、传入一个参数,表示的是开始区间,默认截取到数组的结尾。

(2)、传入两个参数,表示截取开始和结束的下标。是一个左闭右开的区间(即包含begin不包含end)。

(3)、两个参数可以为负数,表示从右边开始截取。但是注意右边开始的第一个数为-1.

  7、sort(); 将数组进行升序排列(即从小到大排列),原数组将被改变。

(1)、默认情况下,会按照每个元素首字母的ASCII值进行排列。

(2)、还可以传入一个函数,手动指定排序的函数算法,函数将默认接收两个值a,b,如果函数返回值大于0,则证明a>b;如果函数返回值大于0,则证明a<b;

    arr.sort(function(a,b){
                    return a-b;  // 升序排列
                    return b-a;  // 降序排列
       });

  8、indexOf(value,index); 返回数组中第一个value值所在的下标,如果没有返回-1;lastIndexOf(value,index); 返回数组中最后一个value值所在的下标,如果没有返回-1。

(1)、如果没有指定index,则表示全数组查找value

(2)、如果指定了index,则表示从index开始,向后查找。

  9、forEach(); 专门用于循环遍历数组,接收一个回调函数,回调函数接收两个参数,第一个参数为数组每一项的值,第二个参数为数组每一项的下标。要注意的是:IE8之前不支持此函数。

    arr.forEach(function(a,b){

    });

  10、map(); 数组映射,使用方式与forEach()相同,不同的是,map可以有return返回值,表示将原数组的每个值进行操作后返回一个新的数组。要注意的是:IE8之前不支持此函数。

  

    var arr1=arr.map(function(a,b){
                    console.log(a);
                    return a+2;
    });

我的代码世界

  关于数组的相关内容就介绍到这里,毕竟是一个初入程序员世界的毛头小子,有什么说错的地方还望各位大牛能够给指出,博客还会持续更新,希望对大家有一点点帮助吧!!!!