JavaScript数组

1.数组介绍

引用数据类型

作用:用来保存多个值,可以保存任意数据类型的值

数组也是对象,数组是以'[]'为界限,值与值之间用,分割 

普通对象是使用字符串作为属性名的,而数组是使用数字作为索引操作元素

数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据

2. 创建数组

1)数组字面量

语法:[ ]

var arr=[ ];

var arr=[1,2,3,4,5,6]

2)构造函数

var arr=new Array();

传递一个参数:给数组指定数组长度

传递多个参数:相当于初始化数组

//一个参数 创建一个长度为10的数组
arr2=new Array(10);

//多个参数
var arr2=new Array(1,2,3,4,5,6);

 3.数组的访问

  • 数组下标,数组下标是从0开始的,一直到数组的长度-1,如果访问的数组下标超过数组长度,会返回一个undefined的值
var arr=[1,2,3,4];
arr[0]      //1
arr[1]      //2
arr[4]      //undefined
  • 给数组添加项         语法:数组[索引]=值;
  • 删除数组最后一项        arr.length=arr.length-1
  • 修改length        如果修改的length大于原长度,则多出部分会空出来;如果修改的length小于原长度,则多出的元素会被删除
  • 向数组的最后一个位置添加元素      语法:数组[数组.length]=值;
  • 获取数组长度     语法:数组.length

4. 数组的遍历

forEach()

这个方法支持IE8以上的浏览器,IE8及以下的浏览器不支持该方法,所以如果需要兼容IE8,则不要使用forEach,还是使用for循环来遍历

forEach()方法需要一个函数作为参数

浏览器会在回调函数中传递三个参数

        第一个参数,就是当前正在遍历的元素

        第二个参数,就是当前正在遍历的元素的索引

        第三个参数,就是正在遍历的数组

//创建一个数组
var arr=['孙悟空','沙和尚','猪八戒','唐僧','白骨精'];

arr.forEach(function(value,index,obj){
    console.log(value);
});

5.数组的检测

arr(目标)  instanceof   Array          如果array是数组,则返回true;如果arr不是数组,则返回false

Array.isArray(arr)        判断arr是否是数组类型

6.数组的序列化

toString()      默认将数组的每一项使用,隔开,以字符串的形式输出

join(参数)      将数组的每一项以想要的符号分隔开,以字符串的形式输出

7.数组的方法

1)栈、队列方法(改变原数组)

栈(先进后出、后进先出)
       pop()       将数组的最后一项删除    返回删除的项    同时将数组的长度减一
       push()      可以接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度
队列(先进先出,后进后出)
       shift()      移除数组中的第一个项     返回该项      同时将数组的长度减一
       unshift()     在数组的前端添加任意个项,并返回数组的长度

2) 排序

reverse()  反转数组项的顺序,改变原数组

sort()

        默认排序:该方法会调用每个数组项的toString() 方法,然后按照字符序列排序

        自定义排序:sort会接受一个函数作为参数,这个函数叫做比较器函数

3) 截取方法

concat()

        数组的拼接      不改变原数组        返回副本

slice()

        截取数组        不改变原数组        截取到的数组
        slice(a)        从第a项开始截取,一直到数组结束
        slice(a,b)      从第a项开始截取,一直到第b项,但是不包含第b项  =>[a,b)

spilce()

        删除    spilce(起始位置,要删除的项数)                          返回删除掉的项
        插入    spilce(起始位置,0,要插入的任意数量的项)                返回空数组
        替换    spilce(起始位置,要删除的项数,要替换的任意数量的项)      返回替换掉的项

4)索引方法

indexOf()  
      从数组开头向后查找,使用全等操作符,找到返回数组下标,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置

lastIndexOf()  
      从数组末尾向前查找,使用全等操作符,找到返回数组下标,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置

 5)迭代方法

参数: 每一项上运行的函数,运行该函数的作用域对象(可选)

every()  
    对数组中的每一元素运行给定的函数,如果该函数对每一项都返回true,则该函数返回true

some()  
   对数组中的每一运行给定的函数,如果该函数对某一项返回true,则返回true

filter()
   对数组中的每一项运行给定的函数,会返回满足该函数的项组成的数组

map()
   对数组中的每一元素运行给定的函数,返回每次函数调用的结果组成的数组

forEach()
   对数组中的每一元素运行给定的函数,没有返回值,常用来遍历元素

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值