1.push:
- 作用:向数组末尾追加某一项
- 参数:添加的具体项,可以是一项,也可以是多项
- 返回值:新数组的长度
- 是否改变原数组:改变
var res = ary.push(40, 50, 60);
console.log(res, ary);// 6 (6) [10, 20, 30, 40, 50, 60]
2.pop:
- 作用:删除数组的最后一项
- 参数:无
- 返回值:删除的项
- 是否改变原数组:改变
var ary = [10, 20, 30];
var res = ary.pop();
console.log(res, ary);// 30 (2) [10, 20]
3.shift:
- 作用:删除数组的第一项
- 参数:无
- 返回值:删除的项
- 是否改变原数组:改变
var ary = [10, 20, 30];
var res = ary.shift();
console.log(res, ary);// 10 (2) [20, 30]
4.unshift:
- 作用:向数组的开头添加内容
- 参数:添加的内容
- 返回值:新数组的长度
- 是否改变原数组:改变
var ary = [10, 20, 30];
var res = ary.unshift(10, 20);
console.log(res, ary);// 5 (5) [10, 20, 10, 20, 30]
5.reverse 倒序
- 作用:把数组元素反向排列
- 参数:无
- 返回值:返回值是排序后的新数组
- 是否改变原数组:改变
var ary = [10, 20, 30];
var res = ary.reverse();
console.log(res, ary);// (3) [30, 20, 10] (3) [30, 20, 10]
6. sort 排序
- 作用:把数组进行排序
- 参数:无或者是一个函数
- 返回值:排序后的新数组
- 是否改变原数组:改变
//----------------------不传参的时候
//=====>10 以内的可以排
var ary=[3,2,1,6,8];
ary.sort();
[1, 2, 3, 6, 8]
//=====> 超出10
var ary2=[1,21,5,33,26]
ary2.sort();
[1, 21, 26, 33, 5];
//---------------------------传参的时候
var ary2=[1,21,5,33,26]
ary2.sort(function(a,b){
return a-b; // 升序
return b-a; //降序
})
7.splice(增删改一体化)
- 作用:删除/新增/修改
- 参数:splice(n,m,...x)不能传负数
- 返回值:删除的元素
- 是否改变原数组:是
@1、删除
- 删除需要给splice传递两个参数
- 第一个参数:要删除的第一个元素的位置
- 第二个参数:要删除的元素数量
var nums = [1, 2, 3, 4, 5, 6];
var res = nums.splice(0, 2);
console.log(nums);// [3, 4, 5, 6]
console.log(res);// [1,2]
@2、新增
- 新增需要传递3个参数
- 第一个参数:开始的位置
- 第二个参数:0(要删除的元素数量)
- 第三个参数: 要插入的元素(任意个)
var num0s = [1, 2, 3, 4, 5, 6];
var res = nums.splice(3, 0, 7, 8, 9);
console.log(nums);//[1, 2, 3, 7, 8, 9, 4, 5, 6]
console.log(res);// []
@3、修改
- 修改也需要传递3个参数
- 第一个参数:开始的位置
- 第二个参数:要删除的元素数量
- 第三个参数: 要插入的元素(任意个)
- 注意:删除的个数和新增的个数可以不一致
var nums = [1, 2, 3, 4, 5, 6];
var res = nums.splice(0, 3, 7, 8, 9);
console.log(nums);//[7, 8, 9, 4, 5, 6]
console.log(res);// [1, 2, 3]
8.slice
作用:从数组中复制元素
参数:返回值:复制的新数组
是否改变原数组:不改变
如果是一个参数,表示从这个位置到结束所有都被复制
var res = ary.slice(1);
console.log(res, ary);
// 两个参数(包含开始,不包含结束)
// 第一个参数表示开始复制的位置
// 第二个参数表示结束位置
var res = ary.slice(0, 1);
console.log(res, ary);
var ary = [10, 20, 30, 40, 50, 60];
// 如果参数是负数,将数组的长度+参数
var res = ary.slice(-4, -2);//2,4 数组的长度-4=2,然后从0数到2所以是30,-2所有是第4个50,取头,不取尾,所以是30,40这两位
console.log(res, ary);
// 开始位置不能大于结束位置,否则复制的是空数组
var res = ary.slice(-2, -4);
console.log(res, ary);
10.toString
- 作用:可以把一个数组转换为字符串
- 参数:无
- 返回值:返回值是转换后的字符串
- 是否改变原数组:不改变
var u = [undefined, null];
console.log(String(undefined));
console.log(String(null));
// 注意,undefined, null不能用toString转字符串
var res = u.toString();
console.log(res);
11.join
- 作用:把数组通过指定的连接符,转换为字符串
- 参数:连接符
- 返回值:返回值是转换后的字符串
- 是否改变原数组:不改变
var ary1 = [1, 2, undefined, 3, { a: 1 }];
var res = ary1.join("|");
console.log(ary1);//[1, 2, undefined, 3, { a: 1 }]
console.log(res)// 1|2||3|[object Object]
eval(res) //==> eval 执行计算
12.indexOf/ lastIndexOf
不兼容ie6-ie8;
- 作用:获取某项在数组中(首次出现/最后出现的) 索引(也可以用来是否包含某项)
- 参数:(n,m)
- 参数:
-
- n:检测的项
- m:如果是indexOf 的话,就是从索引m开始检索。如果是lastIndexOf 的话,就是从索引m停止检索
- 返回值:-1或者具体的索引值
- 是否改变原数组:不改变
+ 作用:检测数组中的某项在数组中(首次indexOf/最后lastIndexOf)出现的位置
var ary=[1,2,3,4,1,55,1];
//检测1这个项目在数组ary 中首次出现的位置
ary.indexOf(1); //0
//从索引2开始,检测1这个项目在数组中首次出现的位置
ary.indexOf(1,2); //4
// 检测1这个项目在数组中最后一次出现的索引
ary.lastIndexOf(1);
// 检测1这个项目在数组中最后出现的索引,在索引5的位置停止检
ary.lastIndexOf(1,5)
//如果此项在数组中没有出现,返回值就是-1
ary.indexOf(66)===>-1
13)includes
- 作用:检测数组中是否包含某一项
- 参数:具体项
- 返回值:布尔值
- 是否修改原数组:否
var res=ary.includes(10);//true
var res=ary.includes(100);//false
console.log(res,ary);
数组迭代方法
迭代、循环、遍历
14)forEach
- 作用:遍历数组中的每一项
- 参数:函数
- 返回值:undefined
- 是否修改原数组:否
- foreach方法 用来遍历数组的每一项 forEach方法没有返回值
//一个家庭的年龄 过年了 每个人长1岁
//方法1 创建一个新数组
var userAages = [19,21,18,34,32,25,45];
var newUserAges = [];
userAages.forEach(function (item,index,array) {
newUserAges[index] = item + 1;
})
console.log(newUserAges);
//方法2 直接改变原来数组
var re = userAages.forEach(function (item,index,array) {
userAages[index] = item + 1;
})
console.log(userAages);
console.log(re);
15)map(结束)
- 作用:把一个数组可以映射成一个新的数组
- 参数:函数
- 返回值:映射后的新数组
- 是否修改原数组:否
// 有一个数组装着2021年所有人的年龄,2022年以后,每个人的年龄都增加1岁
var allAge = [19,15,,2,30,32,43,45];
var age2020 = allAge.map(function (item,index,arr) {
return item+1;
})
console.log(age2020);