改变原数组
- push()
在数组的最后一位添加数据,可添加任意个数据,返回修改后数组的长度
- pop()
数组末尾移除最后一项,减少length的值,并返回移除的项
- shift()
删除数组的第一项,并返回删除元素的值,数组为空则返回undefined
- unshift()
在数组开头添加数据,并返回数组的长度
- sort()
按升序排列数组项,排序时会调用每个数组的toString方法比较,因此有时候会不准确,
sort()方法可以接受一个比较函数作为参数。以便我们来指定哪个数在前哪个在后
比较函数要接受两个参数,如果返回一个负数则第一个参数位于第二个参数之前,如果返回0则相等
如果返回正数则第一个参数位于第二个数之后
例
var arr = [1,9,6,7,10,2,100];arr.sort(function(a,b) { return a-b;}); // [1,2,6,7,9,10,100]复制代码
- reverse()
反转数组项的顺序
var arr = [13, 24, 51, 3];console.log(arr.reverse()); //[3, 51, 24, 13]console.log(arr); //[3, 51, 24, 13](原数组改变)复制代码
- splice()
可以实现删除,插入和替换
splice(从第几位开始,截取多少长度,在切口处添加新数据 )
例
var arr = [1,3,5,7,9,11];var arrRemoved = arr.splice(0,2);console.log(arr); //[5, 7, 9, 11]console.log(arrRemoved); //[1, 3]var arrRemoved2 = arr.splice(2,0,4,6);console.log(arr); // [5, 7, 4, 6, 9, 11]console.log(arrRemoved2); // []var arrRemoved3 = arr.splice(1,1,2,4);console.log(arr); // [5, 2, 4, 4, 6, 9, 11]console.log(arrRemoved3); //[7]复制代码
不改变原数组
- concat()
将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
var arr = [1,3,5,7];var arrCopy = arr.concat(9,[11,13]);console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]console.log(arr); // [1, 3, 5, 7](原数组未被修改)复制代码
- slice()
返回从原数组中指定开始下标到结束下标之间的项组成的新数组。slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
var arr = [1,3,5,7,9,11];var arrCopy = arr.slice(1);var arrCopy2 = arr.slice(1,4);var arrCopy3 = arr.slice(1,-2);var arrCopy4 = arr.slice(-4,-1);console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)console.log(arrCopy); //[3, 5, 7, 9, 11]console.log(arrCopy2); //[3, 5, 7]console.log(arrCopy3); //[3, 5, 7]console.log(arrCopy4); //[5, 7, 9]复制代码
- join()
将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符,该方法只接收一个参数:即分隔符。
var arr = [1,2,3];console.log(arr.join()); // 1,2,3console.log(arr.join("-")); // 1-2-3console.log(arr); // [1, 2, 3](原数组不变)复制代码
- split()
与join()正好相反,把一个字符串分割成字符串数组,如果把空字符串("")用作separator,那么它会把里面每个字符串都分割
var str="How are you doing today?";var n=str.split(" "); //How,are,you,doing,today? 复制代码