数组的方法
由于数组很常用,数组上会自带很多的方法,提供给我们用于操作数组,这些方法都已经实现好了,我们只管去调用它即可
(是数组的方法,就只能是数组才可以调用)
1. push()方法
作用:在数组的末尾增加项
参数:要加入的项
返回值:新增项目后数组的长度
2. unshift()方法
作用:在数组的开头增加项
参数:要加入的项
返回值:新增项目后数组的长度
3. pop()方法
作用:在数组的末尾删除一项 (固定就删数组末尾的那一个)
参数:没有参数
返回值:被删除的那一项
4. shift()方法
作用:在数组的开头删除一项
参数:没有参数
返回值:被删除的那一项
5. splice()方法
在数组的任意一个位置增加或删除或修改
参数:1.开始的索引 2.要删除几项 3.要加入的那一项
删除
Var ary = [2,4,5,43,5,22,3,5] ary.splice(4,3) [2,4,5,43,5] -> [5,22,3]
ary.splice(n,m)
从索引n开始,删除m个项 ,把删除的项以一个新的数组返回,原数组改变
Ary.splice(n) 从索引n开始,删除后面所有的项
Ary.splice(0) 把数组从开头删到结尾(把原数组删完了),返回值就是包含原数组所有项的数组,相当于 清空原数组克隆一份新数组
Ary.splice() 数组中一个都没有删除,返回一个空数组
修改
Var ary = [2,4,5,43,5,22,3,5]
ary.splice(n,m,x) ary.slice(1,4,100) [2,100,22,3,5]
从索引n开始,删除m个项,把x这一项替换到被删除项的位置
增加
Var ary = [2,4,5,43,5,22,3,5]
ary.splice(n,0,x) ary.splice(5,0,666) [2,4,5,43,5,666,22,3,5]
从索引n开始,删除0个项,把x这一项放到索引n的前面
把删除的项以一个新的数组返回,原数组改变
6.slice()方法(不会改变原数组)
作用:从数组中拷贝出指定的项
参数:1.开始的索引 2.结束的索引
返回值:一个数组,把所有拷贝到的项装到这个数组中
改变原数组:不会
Var arr = [2,4,6,8,10]
var newArr = arr.slice(1,4)
从索引1开始拷贝,一直拷贝到索引4处,但不包括索引3,返回[4,6,8]
在不传参: var newArr = arr.slice(), 返回 [2,4,6,8,10] ,完整拷贝
传一个参数:var newArr = arr.slice(0),返回 [2,4,6,8,10] ,完整拷贝
传一个参数:var newArr = arr.slice(2),返回 [6,8,10]
7.concat()方法(不会改变原数组)
作用:把两个(多个)数组拼成一个新数组
参数:要拼接的组数(也可以数字,字符串...)
返回值:拼好的一个新数组
Var arr1 = [3,5,7]
Var arr2 = [2,4,6]
基本的应用
var newarr = arr1.concat(arr2) --> [3,5,7,2,4,6]
8.toString()方法(不会改变原数组)
作用:把数组转成一个字符串
参数:没有参数
返回值:转好的字符串
var arr = [2,4,6,8,10]
Console.log(arr.toString()) --> “2,4,6,8,10”
9.join()方法(不会改变原数组)
作用:把数组按指定的“分隔符”转成一个字符串
参数:“分隔符”,可以是任意的字符,如:+,|,””,abc,!@#$
返回值:转好的字符串
Var arr = [2,4,6,8,10]
console.log(arr.join( )) --> “2,4,6,8,10”
console.log(arr.join(“”)) -->”246810”
console.log(arr.join(“|”)) -->”2|4|6|8|10”
console.log(arr.join(“+”)) -->”2+4+6+8+10”
用全局提供的一个方法eval( ):把一个字符串转成一个表达式
console.log(eval(arr.join(“+”))) -->30
10. indexOf()/lastIndexOf()方法(不会改变原数组)
作用:按指定的值查找它的索引
参数:一个值
返回值:对应的索引
Var arr = [2,4,6,8,10,12]
Console.log(arr.indexOf(6));
从数组的左边开始在数组中找到6这个值对应的索引; --> 2
Console.log(arr.lastIndexOf(6));
从数组的右边开始在数组中找到6这个值对应的索引;--> 2
Console.log(arr.indexOf(9));
从数组的左边开始在数组中找到9这个值对应的索引;--> -1
如果在个值在数组中不存在 会返回 -1,我们可以通过这个特性,来判断一个值在不在一个数组中。
Var class = [“小明”,”小白”,”小黑”]
If(class.indexOf(“小乔”)== -1){
Console.log(“我们班没有小乔这个人”)
}
var arr = [2,4,6,8,10,6,12]
我们可以利用indexOf()/lastIndexOf()一起,来判断一个值在数组中是不是唯一的。
Console.log(arr.indexOf(6)) -->2
Console.log(arr.lastIndexOf(6)) --> 5
If(arr.indexOf(6) == arr.lastIndexOf(6) ){
Cosole.log(“在这个数组中只有一个6,6是唯一的”)
}else{ console.log(“6不是唯一的”)}
11. includes方法(不会改变原数组)
作用:判断数组中是否包含某个值
参数:1.一个值 2.开始找的索引
返回值:true/false
Var arr = [2,4,6,8,10,12]
console.log(arr.includes(6)); 判断在数组中是否包含6,返回 --> true
console.log(arr.includes(9)); 返回 --> false
console.log(arr.includes(6,4)); 从索引4开始,找6,返回 --> false
12.reverse()方法
作用:把数组倒过来
参数:没有参数
返回值:倒过来的数组
Var arr = [32,6,99,2,7]
console.log(arr.reverse()) -- > [7,2,99,6,32]
13. sort()方法
作用:给数组排序
参数:是一个函数
返回值:排好的数组
var arr = [13,5,100,28,92,39]
console.log(arr.sort(function(a,b){return a-b})) //由小到大
console.log(arr.sort((a,b)=>a-b))