2.3 数组及常用方法
简述
1.数组里面可以放任意的数据类型
2.数组是引用数据类型,操作数组时实际是在操作数组的内存地址
3.数组是由字符串属性名和属性值组成的特殊对象,我们把数组的属性名叫做数组的索引,所以数组的索引是字符串类型的,如果索引不是字符串类型,则会隐式转换成字符串类型。
例:arr[function(){}]=100; 表示让函数作为数组的索引,并且赋值
控制台console,function(){}:100 ,数组的属性值为字符串
创建数组的方式 var arr = [0,false,true,3,undefined,null,{}] arr.length 为7
数组的特点:length属性表示数组的长度,数组的索引从0开始
1.数组的增加 原来数组arr被改变了,返回的结果是arr.length
var arr = [1,2,3,4,5,6];
arr.push() 作用:在数组的后面添加一个或多个数据
arr.unshift() 作用:在数组的前面添加一个或多个数据
arr.push("apply") --->[1, 2, 3, 4, 5, 6,"apply"]
2.数组的删除 数组arr被改变了,返回的结果是被删除的数据
arr.pop() 作用:删除数组最后一个数据
arr.shift() 作用:删除数组最前面一个数据
3.splice(n,m) 数组arr被改变了,返回的结果是被删除的数据,以数组的形式显示
删除数据
arr.splice(n,m) 作用:从arr的索引n位置删除m个数据
arr.splice(n) 表示删除数组索引n之后的所有数据
arr.splice() 表示不删除数据
arr.splice(0) 表示删除数组索引0之后的所有的数据
arr.splice(2,3) --> [1, 2, 6,"apply"] 从3开始到5删掉了3个数据
修改数组 数组arr被改变了,返回的结果是被删除的数据
arr.splice(n,m,新增数据)
作用:从数组的索引n开始删除m个数据,同时把新增数据插入在索引n前面
arr.splice(2,2,"aaa") --> [1, 2, "aaa", 5, 6, "apply"]
4.数组反转 数组arr被改变了,返回结果是 倒序后的数组
arr.reverse() 作用:把原来数组中的每一个数据颠倒顺序排列
arr.reserve -->["apply", 6, 5, 4, 3, 2, 1]
5.arr.indexOf(指定数据) 从左向右查看指定数据在数组中的索引位置
如果指定数据不在数组里面 则结果是-1
arr.indexOf("apply") ---> 0
6.arr.lastIndexOf(指定数据) 从右向左查看指定数据在数组中的索引位置
如果指定数据不在数组里面 则结果是-1
var arr = [1,2,3,4,5,6,];
arr.lastIndexOf("apply") ---> 0
7.Array.isArray(数据) 判断数据是不是数组
如果arr是数组,那么Array.isArray(arr)的结果是true
如果arr不是数组,那么Array.isArray(arr)的结果是false
/***-----不改变原来的数组 8-10 ---------*/
8.arr.slice(n,m) 作用:数组查询,没有改变原数组
arr.slice(n,m)的返回结果是从索引n开始截取m-n个数据,以数组方式返回
9.arr.concat(数组1,数组2) 作用:实现字符串的拼接,没有改变原数组
arr.concat(数组1,数组2)的返回结果是合并后的新数组
可以添加任何的数据类型
10.arr.join(拼接符) 没有改变原来的数组
拼接符需要是字符串 如果不是字符串 则隐式转成字符串
把数组中的每一项通过拼接符连接起来,成为一个字符串
11.数组的排序arr.sort() 数组arr被改变了
作用:把数组中的每一个数据按照一定顺序排列,结果是排好顺序之后的新数组;arr.sort()这个方法会把数组中的每个数据先转化成字符串,之后比较字符串的大小,按照字符串的大小来排列
1.按照第一个数字的从小到大排列
2.如果第一位数字都一样,就按照第二位数字排列...
3.如果一个函数当做实参,则这个函数叫做回调函数
arr.sort(function(a,b){
return 值
如果是正值 a,b就颠倒位置
如果是负值 a,b就不颠倒位置
})
var arr=[2,34,54,10,7]
arr.sort(function(a,b)){
/* a b
2 34
34 54
54 10 [2,34,10,54,7]
54 7 [2,34,10,7,54]
2 34
34 10 [2,10,34,7,54]
34 7 [2,10,7,34,54]
2 10
10 7 [2,7,10,34,54]
* */
return a-b
}
---->[2, 7, 10, 34, 54]
补充
1.数据传上去,用形参接收
2.往数组添加数据除了用push,还可以用arr[3]='ora'添加