1.unshift
在数组的最前面添加
(1) 参数:一个或多个
(2) 返回值:新数组的长度
(3) 改变原数组
let ary = [1,2,3,4,5];
console.log(ary.unshift(0)); //6
console.log(ary); //[0,1,2,3,4,5]
2.shift
删除数组第一项
(1) 参数:无
(2) 返回值:被删除的一项
(3) 改变原数组
let ary = [1,2,3,4,5];
console.log(ary.shift()); //1
console.log(ary); //[2,3,4,5]
3.push
在数组的最后面添加
(1) 参数:一个或多个
(2) 返回值:新数组的长度
(3) 改变原数组
let ary = [1,2,3,4,5];
console.log(ary.push(1,2,3)); //8
console.log(ary); //[1,2,3,4,5,1,2,3]
4.pop
删除数组最后一项
(1) 参数:无
(2) 返回值:被删除的一项
(3) 改变原数组
let ary = [1,2,3,4,5];
console.log(ary.pop()); //5
console.log(ary); //[1,2,3,4]
5.splice
删除数组中的某一项或多项,用新的数据替换(支持负数)
返回值:被删除的一项或几项
原数组发生改变
[1,2,3,4,5].splice(1); //1个参数,即为从索引为1的位置删除到最后 [2,3,4,5]
[1,2,3,4,5].splice(1,2); //第一个参数为索引,第二个参数为删除的个数 [2,3]
[1,2,3,4,5].splice(1,2,"a"); //在索引1的前面添加“a” [2,3]
[1,2,3,4,5].splice(1,1,"a"); // [2]
6.indexOf
查询数组是否存在某个数据,返回第一次匹配元素的索引值
参数:被查找的一项
返回值:返回第一次匹配的索引,不存在返回-1
["a",1,2,3].indexOf("a"); // 0
7.lastIndexOf
查询数组是否存在某个数据,返回最后一次匹配元素的索引值
参数:被查找的一项
返回值:返回最后一次匹配的索引,不存在返回-1
["a",1,2,3,"a"].lastIndexOf("a"); // 4
8.slice
截取数组中的一项(支持负数)
返回值:截取数组中的一部分
[1,2,3,4,5,6].slice();//没有参数,将原数组克隆一份 [1,2,3,4,5,6]
[1,2,3,4,5,6].slice(1);//1个参数,从索引1开始截取到最后 [2,3,4,5,6]
[1,2,3,4,5,6].slice(1,2); //2个参数,从索引1开始截取到索引2,但不包含索引2(包前不包后)[2]
[1,2,3,4,5,6].slice(1,-2); //2个参数,从索引1开始截取到索引4,但不包含索引2(包前不包后)[2,3,4]
9.sort
排序
返回值:排好序的数组
修改原数组
没有参数时,只能排序相同位数的数字,从小到大排序
[1,3,2,5,3,9,6].sort(function(a,b){return a-b}) //从小到大排序 [1, 2, 3, 3, 5, 6, 9]
[1,3,2,5,3,9,6].sort(function(a,b){return b-a}) //从大到小排序 [9, 6, 5, 3, 3, 2, 1]
10.reverse
倒序,将数组顺序倒置
修改原数组
返回值:排好序的数组
参数:无
[1,3,2,5,3,9,6].reverse(); //[6, 9, 3, 5, 2, 3, 1]
11.concat
拼接数组
参数:一个或多个数组,不是数组会转成数组(在外面加[])再拼接
不传参数会克隆数组
返回值:拼接完成的数组
[1,3,2,5,3,9,6].concat([1,1,1],3); //[1, 3, 2, 5, 3, 9, 6, 1, 1, 1, 3]
12.join
将数组按照指定的字符拼接成字符串
参数:没有参数,按“,”拼接;有参数,按照参数的字符进行拼接
[1,3,2,5,3,9,6].join("*"); //1*3*2*5*3*9*6
13.map
映射,根据原来数组的每一项,映射出一个新的数组
参数:回调函数,数组的长度是几,回调函数执行几次
返回值:映射得到一个新的数组
没有return
let m=[1, 3, 2, 5, 3, 9, 6].map(function(item,index,all){
//item为数组中的每一项
//index为数组中每一项的索引
//all为整个数组
return 100;
})
console.log(m);//[100, 100, 100, 100, 100, 100, 100]
14.forEach
遍历数组
参数:回调函数
返回值:无,即undefined
[1, 3, 2, 5, 3, 9, 6].forEach(function(item,index,all){
//item为数组中的每一项
//index为数组中每一项的索引
//all为整个数组
})
15.toString
换成字符串
参数:不需要参数
[1, 3, 2, 5, 3, 9, 6].toString();
// 1,3,2,5,3,9,6
16.find
查找
ES6新语法,从左往右遍历,返回
第一个
符合条件的值
无返回值返回undefined
let a = [1, 2, 3, 4, 5].find((item, index) => {
return item > 3;
})
console.log(a) //4
17.filter
过滤
把符合条件的数组成员放到一个新数组中
let a = [1, 2, 3, 4, 5].filter((item, index) => {
return item > 3;
})
console.log(a) //[4, 5]
18.some
返回一个布尔值,只要有符合条件的就返回true,不再继续查找
let a = [1, 2, 3, 4, 5].some((item, index) => {
return item > 3;
})
console.log(a) //true
19.every
每一个都符合条件,则返回true,否则返回false
只要找到false,直接结束,不再继续查找,返回布尔值
let a = [1, 2, 3, 4, 5].every((item, index) => {
return item > 3;
})
console.log(a) //false
20.includes
返回一个布尔值,如果有返回true,没有返回false
let a = [1, 2, 3, 4, 5].includes(5)
console.log(a) //true
21.reduce
收敛
参数:prev,第一次代表数组的第一项,以后都代表上一次回调函数的返回值
let a = [1, 2, 3, 4, 5].reduce((prev, next) => {
return prev + next;
}, 100);
console.log(a); //115