1、Array.join(*)
将数组中所有元素转化为字符串拼接在一起,并返回一个字符串,其中*号代表你要用什么分隔符来生成字符串,默认为逗号 返回新字符串不改变原数组
var arr=[1,2,3,4,5];
var brr=arr.join(",");
console.log(arr); [1,2,3,4,5]
console.log(brr); 1,2,3,4,5
2、 Array.reverse()
将数组中的元素颠倒顺序,返回逆序的数组 此方法改变了原数组
var arr=[1,2,3,4,5];
var brr=arr.reverse()
console.log(arr);[5,4,3,2,1]
console.log(brr);[5,4,3,2,1]
3、Array.sort()
将数组中的元素进行排序并返回排序后的数组,如果不给参数将按照字母进行排序 此方法改变原数组 ,如果包含undefined,将被排到数组尾部,默认排序区分大小写,不区分大小写需要传递参数
var arr=["b","k","h","s","a"];
arr.sort()
console.log(arr); ["a","b","h","k","s"]
非字母表排序需要给sort传递一个比较函数。该函数的两个参数决定了他的两个参数在排好序的数组中的先后顺序,假如第一个参数在前应该返回一个小于0的数。反之,第一个参数在后应该返回一个大于0的数。假设两个值相等(排序无关紧要)返回0
var arr=[1,23,2,333,45,5,666];
arr.sort()
console.log(arr);[1,2,23,333,45,5,666]//按照Unicode编码排序
arr.sort((a,b)=>{
return a-b;//升序
})
console.log(arr); [1, 2, 5, 23, 45, 333, 666]
arr.sort((a,b)=>{
return b-a;//降序
})
console.log(arr); [666, 333, 45, 23, 5, 2, 1]
4、Array.concat()
创建并返回一个新的数组,不改变原数组,总的来说就是讲数组和参数拼接在一起
var arr=[1,2,3,4];
var brr=arr.concat(4,5);
console.log(arr);[1,2,3,4]
console.log(brr);[1,2,3,4,4,5]
5、Array.slice(star,end)
返回指定数组的一个片段或子数组。两个参数代表片段的开始和结束位置。含左不含右(包含起始端不包含结束端)。如果指定一个参数那就是从参数开始到结束。如果包含负数,-1代表最后一个元素(结尾端以-1开始起)。 此方法不修改原数组
var arr=[1,2,3,4,5];
console.log(arr.slice(0,3));[1,2,3]
console.log(arr.slice(3));[4,5]
console.log(arr.slice(1, -1));[2,3,4]
console.log(arr.slice(-3, -2));[3]
6、Array.splice(star,num,..)
在数组中插入或删除的通用方法。此方法会修改原数组 。第一个参数指定了插入或删除的起始位置,第二个参数指定了要删除的个数,如果神略,那么从起始位置到结尾都将被删除。此方法返回的是删除元素组成的数组,如果没有删除元素就返回一个空数组
var arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.splice(4));[5,6,7,8,9]
console.log(arr);[1,2,3,4]
console.log(arr.splice(1,2));[2,3]
console.log(arr);[1,4]
console.log(arr.splice(1,1));[4]
console.log(arr);[1]
前面两个参数指定了起始位置和删除的数量,后面人一个数的参数指定了需要插入到数组中的元素
var arr=[1,2,3,4,5];
console.log(arr.splice(2,0,"a","b"));[] 没有删除元素
console.log(arr);[1,2,"a","b",3,4,5]
console.log(arr.splice(2,2, [7,8],9));["a","b"]
console.log(arr);[1,2, [7,8],9,3,4,5]
7、push()和pop()
两个方法允许将数组当做栈来使用,push是向数组的尾部追加一个或多个元素,并返回数组的新的长度。pop()则相反,它删除数组中的最后一个元素,减小数组长度并返回删除的值。两种方法都修改了原数组。
var arr=[];
console.log(arr.push(1,2));//2
console.log(arr);//[1, 2]
console.log(arr.pop());//2
console.log(arr);//[1]
console.log(arr.push(3));//2
console.log(arr);//[1, 3]
console.log(arr.pop());//3
console.log(arr);//[1]
console.log(arr.push([4,5]));//2
console.log(arr);//[1, [4, 5]]
console.log(arr.pop());//[4, 5]
console.log(arr);//[1]
console.log(arr.pop());//1
console.log(arr);//[]
注意:push返回新数组长度,pop返回删除的元素
8、unshift()和shift()
这两个方法与第七条正好相反,是在数组的头部进行操作。unshift()在数组的头部添加一个或多个元素,并将已存在的元素移动到更高的索引位置来获得更多的空间,返回新数组的长度。shift()删除数组的第一个元素并返回其值。
var arr=[];
console.log(arr.unshift(1));//1
console.log(arr);//[1]
console.log(arr.unshift(2));//2
console.log(arr);//[2, 1]
console.log(arr.shift());//2
console.log(arr);//[1]
console.log(arr.unshift(3,[4,5]));//3
console.log(arr);// [3, [4,5], 1]
console.log(arr.shift());//3
console.log(arr);//[ [4,5], 1]
console.log(arr.shift());//[4, 5]
console.log(arr);//[1]
console.log(arr.shift());//1
console.log(arr);//[]
注意:多个参数插入是一次性插入的,而非一个一个插入,所以不会改变插入式的顺序