数组
一组数据,可以存放多个数据类型,建议存放一组数据类型
如果数组里面没有数据就是空数组
数组的定义
第一种声明方式
数组也是一个对象,只是对应的数据结构不同
使用new关键字 + Array()定义一个数组
var arr = new Array();声明空数组
括号内写一个数表示数组的长度,值为空,默认值为undefined,从1开始计数,通过length属性获取;括号内有多个数据表示数组的元素
可以通过对应的下标指定对应的元素(进行赋值或获取)。下标从0开始,下标永远小于数组长度
第二种声明方式
使用[ ]直接赋值定义
var arr = [ ] //定义一个空数组
[ ]内可以写数组的元素,逗号隔开
变量是一个容器,数组也是一个容器,可以装数据的统称为容器,只要是容器都存在增删改查的方法
数组的属性
lenght // 可以得到数组的长度,也就是元素的个数,从1开始计数,一般都比下标多一
数组的方法
数组的方法都会改变原数组
//参数传入字符串类型,返回Number类型,新的数组长度 push() //追加到后面,入栈(先进后出,后进先出) unshift() //插入到前面,队列(先进先出,后进后出) //返回删除的值,如果数组为空,则返回undefined pop() //删除最后一个,出栈 shift() // 删除第一个,队列 reverse() // 反向排序,会影响原来的数组,没有参数,返回值为倒转过来的数组 sort() // 默认无参,从小到大,返回值为排序好的数组,排序方式是根据ASCII码比较,如果是数值会自动转换为 // 指定比较方法进行比较: arr.sort(function(a,b){ return a-b; //返回的是1就是正序a-b,返回-1就是倒序b-a }) // 可以接收比较参数,参数是一个function,函数里面有两个参数a,b String, // 只取第一位 concat() // 合并两个数组,返回值为一个新的数组,不影响原本数组,参数可以是数组也可以是单个元素,默认连接在后面 slice() // 截取方法,截取对应数组的某一段内容组成一个新的数组,返回值为一个新的数组,不会改变原本的数组,参数为开始下标和结束下标(截取不包括结束下标),如果只有一个参数,则返回该索引到数组末尾的所有元素,如果结束下标小于开始下标,那么返回空数组 splice() // 删除,第一个参数为开始的下标,第二个参数为删除的个数(可以省略,那就是删除到结尾),会改变原本的数组,返回值是被删除元素组成的数组 //如果是一个参数,那么就是从指定的参数下标删到结尾;如果是两个参数,那么就是从指定参数下标开始删指定的个数;如果是三个参数或者以上的参数,那么就是从指定的下标开始,删指定的个数,再将第三个参数插入到对应删除的位置;如果第二个参数为0,那么返回一个空数组,也不删除元素,就是单纯的将第三个参数插入到指定的下标 join() // 将数组转换为字符串,默认以逗号分隔,接收一个参数,即字符串分隔符,不会影响原本的数组,返回值为string indexOf() // 根据要查找的元素找下标,从前往后找,找到返回第一次出现的元素的下标,找不到返回-1,默认从0开始找,接收第二个参数,表示可选的起始搜索位置 lastIndexOf() // 作用同indexOf(),不同点就是从后往前找 includes() // 是否包含,返回布尔值,表示是否至少找到一个与指定元素匹配的项,使用全等(===)比较
遍历数组
//逐个取出来,一般数组遍历使用循环遍历,一般使用for循环 for (var i = 0; i < arr.length; i++){ console.log(arr[i]) }
//for..in遍历,用于遍历数组和对象 for (var index in array) { //index表示数组下标,in表示在里面 , array表示要遍历的数组 console.log(array[index]) }