持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情
改变原数组的方法:
1. pop() 方法从数组中删除最后一个元素:
var arr = ['Tom','Jack','Jerry']
var x = arr.pop() //arr = ['Tom','Jack'], x = 'Jerry'
2.push()方法(在数组结尾处)向数组添加一个新的元素:
var arr = ['Tom','Jack','Jerry']
arr.push('zom') // arr = ['Tom','Jack','Jerry','zom']
3.shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。
var arr = ['Tom','Jack','Jerry']
var x = arr.shift() // arr = ['Jack','Jerry'], x = 'Tom'
4.unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素:
var arr = ['Tom','Jack','Jerry']
arr.unshift('Jim') // arr = ['Jim','Tom','Jack','Jerry']
5.splice()方法,拼接数组,可用于删除覆盖添加值。接收多个个参数:
- 修改的起始位置,
- 要删除的元素个数,
- 其余的参数是要添加的元素,
- 返回删除的数组
var arr = ['Tom','Jack','Jerry']
var x = arr.splice(1,0,'Jim','Zom') // arr = ["Tom", "Jim", "Zom", "Jack", "Jerry"], x = []
var y = arr.splice(1,1) // arr = ["Tom", "Zom", "Jack", "Jerry"], y = ['Jim]
6.sort() 排序方法,会以字符串的比较方法来对数组中所有的元素转为字符串,然后在进行比较,哪怕所有元素都是数字。
- 可以跟一个函数,函数会回传两个参数,下一个元素,和当前元素。可以通过这个函数来修改上面的问题。
var arr = ['c','d','a','b','e']
arr.sort() // arr = ['a','b','c','d','e']
var arr1 = [1,31,13,3]
arr1.sort() // arr1 = [1,13,3,31]
arr1.sort(function(va1,va2){
if(va1 < va2){
return -1
}else{
return 1
}
}) // arr1 = [1,3,13,31]
首先会比较31和1,31>1不用交换位置,比较13和31,需要交换位置的,然后在比较13和1,不需要交换位置,
在比较3和13需要交换位置,在比较3和1。
7. reverse()方法:反转数组项的顺序。
var arr = ['Tom','Jack','Jerry']
arr.reverse() // arr = ['Jerry', 'Jack', 'Tom'] 原数组已经发生改变了。
不改变原数组的方法
1.concat()方法通过合并(连接)现有数组来创建一个新数组:
- 跟要合并的数组,可以不止一个数组
- 返回合并之后的数组,对元素组没有影响
var arr = ['Tom','Jack','Jerry']
var arr1 = ['Sky','Blue']
var arr2 = arr.concat(arr1) // arr2 = ['Tom','Jack','Jerry','Sky','Blue']
2.slice()方法,从数组中切出一个新的数组。
- 起始剪切位置
- 结束位置(不包括),可以不传,默认会剪切起始位置之后的所有元素。
var arr = ['Tom','Jack','Jerry','Sky','Blue']
var arr1 = arr.slice(2) // arr1 = ['Jerry','Sky','Blue']
var arr2 = arr.slice(2,4) // arr2 = ['Jerry','Sky']
join()方法,将数组的元素组起一个字符串。
- 接收一个参数,即元素的连接符,可以不回传,默认以','作为分隔符。
- 返回合并之后的字符串。
var arr = ['Tom','Jack','Jerry']
var str = arr.join() // str = Tom,Jack,Jerry
var str = arr.join('-') // str = Tom-Jack-Jerry