push() 在数组尾部添加一个或多个元素,并返回新增元素之后数组的长度,影响原数组
var arr = [1, 2, 3, 4];
arr.push(5);//添加一个元素
arr.push(6, 7);//一次添加多个元素
console.log(arr);
输出: (7) [1,2,3,4,5,6,7]
unshift() 在数组头部添加一个或多个元素,并返回新增元素之后数组的长度,影响原数组
var arr = [1, 2, 3, 4];
arr.unshift(5); //添加一个元素
arr.unshift(6, 7); //一次添加多个元素
console.log(arr);
输出: (7) [6,7,5,1,2,3,4]
pop() 删除数组尾部的元素 (一次只能删一个),并返回被删除的元素,影响原数组
var arr = [1, 2, 3, 4, 5, 6];
arr.pop();
console.log(arr);
输出: (5) [1,2,3,4,5]
返回值 6
shift() 删除数组头部的元素 (一次只能删一个),并返回被删除的元素,影响原数组
var arr = [1, 2, 3, 4, 5, 6];
arr.shift();
console.log(arr);
输出: (5) [2,3,4,5,6]
返回值 1
splice() 任意位置的增删改
删除
语法: splice(startIndex,length) 返回被删除的元素形成的数组,影响原数组
startIndex 起始下标
length 删除元素的个数
实例:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.splice(1, 2);
console.log("原数组" + arr);
console.log("被删除元素组成的新数组" + list);
输出: arr [1,4,5,6]
list [2,3]
增加
语法: splice(startIndex, 0,arg1,arg2,....argN) 返回空数组 (没有删除元素),影响原数组
startIndex 起始下标(新增的起始位置)
0 删除个数为0即不进行删除
arg1,arg2,....argN 自第三参数开始 可以新增一个或多个元素
实例:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.splice(3, 0, 7, 8, 9);
console.log("原数组" + arr);
console.log("被删除元素组成的新数组" + list);
输出: arr [1,2,3,7,8,9,4,5,6]
list []
修改
语法: splice(startIndex, length,arg1,arg2,....argN) (本质 先删除对应位置的元素 在新增)
startIndex 起始下标(新增的起始位置)
length 删除的元素的个数
arg1,arg2,....argN 自第三参数开始 可以新增一个或多个元素
实例:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.splice(2, 2, 7, 8);
console.log("原数组" + arr);
console.log("被删除元素组成的新数组" + list);
输出: arr [1,2,7,8,5,6]
list [3,4]
slice(startIndex,endIndex) 数组的裁切,并返回裁切的元素形成的数组(新数组),不影响原数组
startIndex 起始下标 默认值 0
tips: 该参数可以为负值,如果为负值,则表示从原数组中的倒数第几个元素开始提取
endIndex 终止下标 默认值 length
tips: 在该索引处结束提取原数组元素,slice 会提取原数组中索引从 startIndex 到 endIndex 的所有元素(包含 startIndex,但不包含 endIndex)
实例1:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.slice(0, 2);
console.log("原数组" + arr);
console.log("被裁切元素组成的新数组" + list);
输出: arr [3,4,5,6]
list [1,2]
如果slice在不传参的情况下,会拷贝原数组
实例2:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.slice();
console.log("原数组" + arr);
console.log("被裁切元素组成的新数组" + list);
输出: arr [1,2,3,4,5,6]
list [1,2,3,4,5,6]
concat() 数组的拼接 可以将多个数组和元素拼接形成新的数组,并返回拼接后的新数组,不影响原数组
tips: 如果拼接是一个数组,则先将数组展开(遍历数组 获取每一个元素),在将每一个元素放到新数组中
如果拼接是一个元素(值),直接放到新数组中
实例1:
var arr = [1, 2, 3, 4, 5, 6];
var arr2 = [7, 8, 9, 10];
var list = arr.concat(arr2);
console.log("拼接后组成的新数组" + list);
输出: arr [1,2,3,4,5,6]
arr2 [7,8,9,10]
list [1,2,3,4,5,6,7,8,9,10]
实例2:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.concat("a");
console.log("拼接后组成的新数组" + list);
输出: arr [1,2,3,4,5,6]
list [1,2,3,4,5,6,"a"]
实例3: concat()在不传参的情况下,默认拷贝原数组
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.concat();
console.log("拼接后组成的新数组" + list);
输出: arr [1,2,3,4,5,6]
list [1,2,3,4,5,6]
join() 用特定的字符 将数组拼接为字符串,并返回拼接之后字符串,不影响原数组
实例:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.join("-");
console.log("拼接后组成的字符串" + list);
输出: arr [1,2,3,4,5,6]
list "1-2-3-4-5-6"
Tips: 有不少小伙伴会把arr.join("")跟arr.join()弄混淆,我来举个栗子让大伙看看他们之间的区别吧
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.join("");
var list2 = arr.join();
console.log(list);
console.log(list2);
输出: arr [1,2,3,4,5,6]
list "123456"
list2 "1,2,3,4,5,6"
从输出结果不难看出,前者是通过空字符串将原数组拼接为字符串,而后者则是将数组转化为字符串
indexOf() 判断数组中是否存在某个元素
返回值: 存在则返回对应元素的下标,不存在则返回-1
实例:
var arr = [1, 2, 3, 4, 5, 6];
var index = arr.indexOf(5);
console.log("原数组" + arr);
console.log("返回对应的下标" + index);
输出: arr [1,2,3,4,5,6]
index 4
includes() 判断数组中是否存在某个元素
返回值 存在返回true 不存在返回false
var arr = [1, 2, 3, 4, 5, 6];
var flag = arr.includes(5);
console.log("原数组" + arr);
console.log(flag);
输出: arr [1,2,3,4,5,6]
flag true
reverse() 数组的逆序,并返回翻转后的原数组,影响原数组
实例:
var arr = [1, 2, 3, 4, 5, 6];
var list = arr.reverse();
console.log("原数组" + arr);
console.log("翻转后的数组" + list);
输出: arr [6,5,4,3,2,1]
list [6,5,4,3,2,1]