数组的一些常用方法
-
push
作用:向数组的末尾添加一项新的内容
参数:需要添加的内容(可以是一个,也可以是多个)
返回值:新增后数组的长度
原数组是否改变:是let arr=['张三','李四','王五']; arr.push("赵六") =>4 console.log(arr) =>['张三','李四','王五','赵六']
-
pop
作用:删除数组最后一项内容
参数:无
返回值:被删除的那一项
原数组是否改变:是let arr=['张三','李四','王五']; arr.pop() => '王五' console.log(arr) =>['张三','李四']
-
shift
作用:删除数组第一项内容
参数:无
返回值:被删除的元素
原数组是否改变:是let arr=['张三','李四','王五']; arr.shift() => '张三' console.log(arr) =>['李四','王五']
-
unshift
作用:向数组的首位添加一项新的内容
参数:添加的内容
返回值:新增后数组的长度
原数组是否改变:是let arr=['张三','李四','王五']; arr.unshift() => '赵六' console.log(arr) =>['赵六','张三','李四','王五']
-
toString
作用:将数组转化为字符串
参数:无
返回值:数组中用逗号分隔的每一项
原数组是否改变:否let arr=['张三','李四','王五']; arr.toString() =>"张三,李四,王五" console.log(arr) =>['张三','李四','王五']
-
join
作用:这个方法和toString类似,也是将数组转化为字符串,只不过这个方法可以在字符串之间用符号拼接
参数:需要拼接的字符
返回值:转换后的字符串
愿数组是否改变:否let arr=[1,2,3]; arr.join() =>"1,2,3" arr.join("+") =>"1+2+3"
注意:这个方法用来做数学运算还是很方便的,Eg:
let arr=[1,2,3]; console.log(eval(arr.join("+"))) =>6 `* eval函数可计算某个字符串,并执行其中的的 JavaScript 代码`
-
concat
作用:用来合并两个或多个数组,生成一个新的数组
参数:需要合并的数组或值
返回值:合并后的数组
原数组是否改变:否let arr1=[1,2,3]; let arr2=[4,5]; console.log(arr1.concat(arr2)) =>[1,2,3,4,5] console.log(arr1) =>[1,2,3]
-
reverse
作用:将数组的顺序倒过来
参数:无
返回值:倒过来的新数组
原数组是否改变:是let arr=[1,2,3]; arr.reverse() =>[3,2,1] console.log(arr) =>[3,2,1]
-
sort
作用:将数组排序
参数: 无参的时候进行普通排序,默认升序,有参的时候可改变排序方式
返回值:排序后的数组
原数组是否改变:是let arr1=[1,3,2,4]; arr1.sort() =>[1,2,3,4] console.log(arr1) =>[1,2,3,4]
注意:这个方法会先将数组中的每一项转化成字符串,然后字符串进行排序,即便数组中的每一项都是数字,也会先转化成字符串再排序
Eg:let arr= [1,2,12,3]; arr.sort(); =>[1,12,2,3] `* 解决方案是sort参数传一个函数,该函数有两个参数a和b,a-b表示升序,反之为降序` let arr=[1,2,12,3]; console.log(arr.sort(function(a,b){ return a-b })) =>[1, 2, 3, 12]
-
splice
作用:基于splice可以实现很多功能
1⃣️:删除数组中指定位置的内容
2⃣️:向数组中指定位置添加一项新内容
3⃣️:修改数组中指定位置的内容一:从数组中删除元素
语法:arr.splice(m,n),从索引m开始(包含m),删除n项内容
注意:如果第二个参数不写就表示删除到末尾
例如:
let arr=[1,2,3,4,5,6];
arr.splice(1,2) =>[2,3]这里的1表示索引,2表示个数,所以从索引1处开始,包含索引为1的内容,删除2项内容
console.log(arr) =>[1, 4, 5, 6]二:从数组中添加元素
语法:arr.splice(n,0,x,…),从索引为n处开始删除0项内容,把x或者更多需要插入的内容插入到数组中索引为n的前面这里的n表示数组的索引,0表示删除的项数,x表示要插入的内容,...表示要插入的更多内容
例如:
let arr=[‘张’,‘李’,‘王’,‘赵’,‘钱’,‘蔡’,‘姜’,‘张’]
arr.splice(1,0,‘小风’,‘小飞’) =>[]因为删除了0项,所以返回值为空数组
arr =>[‘张’,‘小风’,‘小飞’,‘李’,‘王’,‘赵’,‘钱’,‘蔡’,‘姜’,‘张’]三:从数组中修改元素
语法:arr.splice(n,m,x,…) 修改的原理是把原来的内容删除掉,替换成新的内容
例如:
let arr=[‘张’,‘李’,‘王’,‘赵’,‘钱’,‘蔡’,‘姜’,‘张’]
arr.splice(1,2,‘小李’,‘小王’) =>[‘李’,‘王’]
arr =>[‘张’,‘小李’,‘小王’,‘赵’,‘钱’,‘蔡’,‘姜’,‘张’]
-
slice
作用:在一个数组中,按照条件查找出数组中部分的内容
语法:arr.slice(n,m) 表示从索引n处,查找到m处(包含索引)
参数:star end 必传,表示从索引处位置开始截取,包含该索引处内容,如果为负数,就是数组末尾开始截取 非必传,如果没传,表示从数组指定索引处截取到数组最后一项,如果第二个参数传了,比如传了2,那么表示截止到索引2处的位置,不包含2 返回值:查找出内容的新数组
原数组是否改变:否let arr=[1,2,3,4,5,6,7,8,9] arr.slice(2,3) =>[3] `这里第二个参数为3,不包含索引为3的内容` arr.slice(2) => [3, 4, 5, 6, 7, 8, 9]
-
indexOf(es5新增)
作用:返回某个指定的字符串值在字符串中首次出现的位置
参数:star end 必传,规定需检索的字符串值 表示从什么位置开始查找,如果只有一个参数,默认从数组开始位置查找,返回找到元素的第一个索引,如果没有找到就返回-1 返回值:查找到元素的索引
原数组是否改变:否let list=[1,2,3,2,5,2] console.log(list.indexOf(2)) =>1
-
lastIndexOf(es5新增)
作用:从数组尾部开始寻找,找到指定元素最后一次出现的位置,并返回索引,如果只有一个参数表示从数组最后一位开始寻找,没有找到就返回-1
参数:和indexOf一样
原数组是否改变:否let list=['张','李','王','赵','钱','蔡','姜','张'] list.lastIndexOf('张') =>7 list =>['张','李','王','赵','钱','蔡','姜','张']