JS数组的一些常用方法
1.push()
Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组的长度。原数组会发生改变。
var arr = [1, 2, 3, 4]
var res = arr.push(5)
//arr = [ 1, 2, 3, 4, 5 ]
//res = 5
var arr = [1, 2, 3, 4]
var res = arr.push(5,6,7,8)
//arr = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
//res = 8
2.pop()
Array.pop(),删除并返回数组的最后一个元素,若数组为空,则返回undefined。原数组会发生改变。
var arr = [1,2,3,4]
var res = arr.pop()
//arr = [ 1, 2, 3 ]
//res = 4
var arr = []
var res = arr.pop()
//arr = []
//res = undefined
3.unshift()
Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组会发生改变。
var arr = [1,2,3]
var res = arr.unshift(0)
//arr = [ 0, 1, 2, 3 ]
//res = 4
var arr = [1,2,3]
var res = arr.unshift(0,9,6)
//arr = [ 0, 9, 6, 1, 2, 3 ]
//res = 6
4.shift()
Array.shift(),删除数组的第一项,并返回第一个元素的值。若数组为空,则返回undefined。原数组会发生改变。 数组不为空:
var arr = [1, 2, 3, 4]
var res = arr.shift()
//arr = [ 2, 3, 4 ]
//res = 1
删除的数组为空时:
var arr = []
var res = arr.shift()
//arr = []
//res = undefined
5.splice()
Array.splice(index,howmany,newElement1,newElement2...),用于添加或删除数组中的元素。从index位置开始删除howmany个元素,并将newElement1、newElement2...从index位置依次插入。删除元素时返回一个包含已删除元素的数组,若无删除元素则返回一个空数组。原数组会发生改变。 传一个参数i: i必须为整数,有兴趣的同学也可以试着传一个字符串,会有你意想不到的结果的。 当i为正整数时:从i位置开始删除后面的所有元素 当i为负整数时:索引从后往前计算,最后一位索引是 -1,倒数第二位是 -2,依次类推。删除 i及 i之后的所有元素。
var arr= [1, 2, 3, 4]
var res = arr.splice(2)
//arr= [ 1, 2 ]
//res = [ 3, 4 ]
传两个参数i,j: 两个参数必须均为整数。表示从数组中索引为 i 开始删除,一共删除 j 个元素。
var arr= [1, 2, 3, 4]
var res = arr.splice(2,1)
//arr= [1, 2, 4]
//res = [ 3 ]
传三个或三个以上的参数i,j,e1,e2...: i:整数,表示索引的起始位置 j:整数,表示删除的个数 e1、e2、...:删除相应元素之后要添加的元素
var arr= [1, 2, 3, 4]
var res = arr.splice(2,1,5)
//arr= [1, 2, 5, 4]
//res = [ 3 ]
6.reverse()
Array.reverse(),将数组倒序。返回值与改变后得到原数组相同。原数组会发生改变。
var arr = [1, 2, 3, 4]
var res = arr.reverse()
//arr = [ 4, 3, 2, 1 ]
//res = [ 4, 3, 2, 1 ]
7.sort()
Array.sort(),对数组元素进行排序。按照字符串UniCode码排序,默认为升序排列,返回值为排序后的数组。原数组会发生改变。 升序:
var arr = [2, 5, 8, 0]
var res = arr.sort((a,b) => {
return a - b
})
//arr = [ 0, 2, 5, 8 ]
//res = [ 0, 2, 5, 8 ]
降序:
var arr = [2, 5, 8, 0]
var res = arr.sort((a,b) => {
return b - a
})
//arr = [ 8, 5, 2, 0 ]
//res = [ 8, 5, 2, 0 ]
8.concat()
Array.concat(),合并两个或多个数组,生成一个新的数组。原数组不发生改变。
var arr = [1, 2, 3, 4, 5]
var arr1 = [6, 7, 8, 9, 10]
var arr2 = ["a", "b"]
var res = arr.concat(arr1,arr2)
//arr = [ 1, 2, 3, 4, 5 ]
//res = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "a", "b"]
9.join()
Array.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。原数组不发生改变。
var arr = [1, 2, 3, 4, 5]
var res1 = arr.join()
var res2 = arr.join("-")
//arr = [ 1, 2, 3, 4, 5 ]
//res1 = 1,2,3,4,5
//res2 = 1-2-3-4-5
10.slice()
Array.slice(i, j) 表示将数组/字符串从 [i, j)(分界是前开后闭)切片,然后返回取出的片段。原数组不发生改变。
var arr = [1, 2, 3, 4, 5]
var res = arr.slice(1,3)
// arr = [1, 2, 3, 4, 5]
// res = [2,3]