增
unshift(元素,元素,元素,......)
- 作用:在数组首部添加新元素。
- 返回值:新增后数组的长度。
- 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.unshift(true,[1,2,3],false));
console.log(arr); // 输出原数组[true,[1,2,3],false,5,6,7,8,9]
push(元素,元素,元素,......)
- 作用:在数组的尾部添加新元素。
- 返回值:新增后数组的长度。
- 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.unshift(true,[1,2,3],false));
console.log(arr); // 输出原数组[5,6,7,8,9,true,[1,2,3],false]
删
shift()
- 作用:删除数组首部的一个元素(一次只能删除一个)
- 返回值:被删除的元素
- 是否影响原数组:是
var arr = [5,6,7,8,9];
console.log(arr.shift());
console.log(arr); // 输出原数组[6,7,8,9]
//删除全部元素
var arr = [5,6,7,8,9]
while(arr.length){
arr.shift();
}
console.log(arr);
pop()
- 作用:删除数组尾部的一个元素(一次只能删除一个)
- 返回值:被删除的元素
- 是否影响原数组:是
var arr = [5,6,7,8,9]
console.log(arr.pot());
console.log(arr); // 输出原数组[5,6,7,8]
改
splice(start,del_length,元素,元素,.....)
- start:从哪个下标位置开始
- del_length:删除几个元素
- 元素:新增的元素
- 作用:在数组的任意位置可以增、删、改的操作
- 返回值:被删除的元素数组
- 是否影响原数组:是
var arr = [5,6,7,8,9];
//只有一个参数时,表示从指定下标开始删除到数组末尾
console.log(arr.splice(1)); //[6,7,8,9] 返回值
console.log(arr); //[5]原数组
var arr1 = [5,6,7,8,9];
//两个参数时,表示从指定的下标位置开始删除指定长度的元素
console.log(arr.splice(1,2)); //[6,7] 返回值
console.log(arr); // [5,8,9]
var arr2 = [5,6,7,8,9];
//在删除的位置新增元素,从下标1开始删除2个元素,并在下标1的位置新增true,false两个元素
console.log(arr2.splice(1,2,true,false)); // [6,7]
console.log(arr2); //[5,true,false,8,9]
var arr3 = [5,6,7,8,9];
//在下标为1的位置,删除0个元素,并在下标1的位置新增两个元素true,false
console.log(arr3.splice(1,0,true,false));//[]
console.log(arr3);//[5,ture,false,6,7,8,9]
截
slice(start,end)
- start:从哪个下标位置开始
- end:到哪个下标位置结束(不包含结束位置)
- 作用:截取数组中指定范围的元素
- 返回值:被截取到的元素数组
- 是否影响原数组:否
var arr = [5,6,7,8,9];
//从原数组中的下标1位置开始截取到数组末尾,并返回截取到的新数组
console.log(arr.slice(1)); //[6,7,8,9]返回值
console.log(arr); //[5,6,7,8,9]原数组
var arr1 = [5,6,7,8,9];
//从原数组中的下标1位置开始截取到3下标之前(不包含3下标)
console.log(arr1.slice(1,3));//[6,7]返回值
console.log(arr1);//[5,6,7,8,9]原数组
var arr2 = [5,6,7,8,9];
//从原数组中的下标3位置开始截取到1下标之前(因为只能向右截取,所以未能截取到元素)
console.log(arr2.slice(3,1));//[]返回值
console.log(arr2;//[5,6,7,8,9]原数组
var arr3 = [5,6,7,8,9];
//从原数组中的下标-3位置开始截取到-1下标之前
console.log(arr3.slice(-3,-1));//[7,8]返回值
console.log(arr3);//[5,6,7,8,9]原数组
拼
concat(元素,元素,......)
- 作用:在指定的数组后面拼接新的元素(如果新元素是数组,则去掉最外层的[]将里面的元素拼接)
- 返回值:拼接后的新数组
- 是否影响原数组:否
var arr = [5,6,7,8,9];
//拼接的元素如果是多维数组,则取最外层数组中的元素原样拼接到指定数组的后面
console.log(arr.concat(1,[true,[1,2]],3));//[5,6,7,8,9,1,true,[1,2],3] 返回值
console.log(arr)//[5,6,7,8,9]
复
function copyArray(arr){
return arr.slice(0);
}
function cloneArray(arr){
return arr.concat();
}
排
reverse()
- 作用:将数组中的元素逆序存放
- 返回值:返回逆序后的数组
- 是否影响原数组:是
var arr = [3,2,10,4,5];
console.log(arr.reverse());//[5,4,10,2,3]返回值
console.log(arr);//[3,2,10,4,5]
sort()
- 作用:将数组中的元素按照字符编码进行从小到大顺序
- 返回值:返回逆序后的数组
- 是否影响原数组:是
var arr = [3,2,10,4,5];
//以字符串的方式比较
console.log(arr.sort());//[10,2,3,4,5]返回值
sort(function(a,b){return a-b;}):将数组中的元素按照数字进行从小到大排序。sort(function(a,b){return b-a;}):将数组中的元素按照数字进行从大到小排序。
var arr = [3,2,10,4,5];
// 按数字 从小到大
console.log(arr.sort(function(a,b){return a-b;})); //[2,3,4,5,10]
// 按数字 从大到小
console.log(arr.sort(function(a,b){reutn b-a;})); //[10,5,4,3,2]
转
join('链接符')
- 作用:将数组转为以指定连接符链接成的字符串
- 返回值:返回转换后的字符串
- 是否影响原数组:否
var arr = [1,2,3,4];
//将数组转成以空字符串连接成的字符串
console.log(arr.join('')); // '1234'