var arr = [1,2,3,4,5];
1、.reduce()方法
使用:
arr.reduce((prev,cur,index,arr)=>{
return prev + cur;
},0/[]/{}) //数组求和
简述:从前往后遍历,这里的0是自定义参数,也可以是数组或对象,也就是第一个参数prev:累计器,第二个参数,cur:遍历项,index:遍历项下标,arr:数组本身(es6新增);补充:.reduceRight()方法:和reduce()相反,从后往前遍历,从数组的最后一项开始向前遍历到第一;
2、.map()方法
使用:
arr.map(function(item,index,arr){
return item*item;
});//数组的每一项乘以自身
简述:返回一个新数组,按照原数组元素顺序依次处理元素,新数组中的值为原数组调用函数处理后的值;item:遍历项,index:遍历项下标,arr:数组本身;
3、.forEach()方法
使用:
let arr2 = [];
arr.forEach((item,index,arr)=>{
if (item >= 3) {
arr2.push(item);
}
});//把大于等于3的数字给数组arr2
简述:对数组进行遍历循环,对数组中的每一项运行给定函数,这个方法没有返回值,参数都是 function 类型;item:遍历项,index:遍历项下标,arr:数组本身;
4、.filter()方法
使用:
let res = arr.filter((item,index,arr) => {
return item > 3;
});//返回数组arr中所有大于3的元素
简述:过滤数组,给数组中的每一项运行给定函数,返回满足过滤条件组成的数组;item:遍历项,index:遍历项下标,arr:数组本身;
5、.includes() 方法
使用:
arr.includes(5, 3); // 从索引3开始查找5是否存在
简述:用来判断一个数组是否包含一个指定的值,如果是返回 true,否则 false;其中,5是(必填)需要查找的元素值,3是(可选)开始查找元素的位置;
6、.splice 方法(&& 注意和split()的区分,split()是分割,并设置分割符号;)
使用:
// 替换
var nums = [1,2,3] // 将2换成4
nums.splice(1,1,4) // 从数组下标1开始,操作1个,替换成4
console.log(nums) // [1,4,3]
// 删除
nums.splice(1,1) // 从数组下标1开始,删除1个,不替换
console.log(nums) // [1,3]
let newarr = arr.splice(2,3)
//splice改变原有数组,newarr等于的是删除的元素
简述:强大的数组方法,可以实现删除,插入和替换;
7、.slice() 方法
使用:
// 1. 正数
var arr = ['A', 'B', 'C', 'D'];
var res = arr.slice(1)
console.log('arr', arr); // ['A', 'B', 'C', 'D']
console.log('res', res); // ["B", "C", "D"]
// 2. 负数
var arr = ['A', 'B', 'C', 'D'];
var res = arr.slice(-1)
console.log('arr', arr); // ['A', 'B', 'C', 'D']
console.log('res', res); // ["D"]
//有两个参数start、end
//从 start 索引开始提取数组元素,直至 end 索引(包括 start,但不包括 end)
var arr = ['A', 'B', 'C', 'D'];
var res = arr.slice(1, 3)
console.log('arr', arr); // ["A", "B", "C", "D"]
console.log('res', res); // ["B", "C"
简述:括号里是负数 : 表示从倒数 start 索引开始提取数组元素;正数 : 从 start 索引开始提取数组元素,直至结束(大于原数组长度,则返回空数组);
8、.indexOf()方法
使用:
arr.indexOf(5,2)//查找内容5,从下标为2的地方开始,返回对应下标
简述:从数组的开头开始向后查找,返回要查找的项在数组中的位置,或者在没找到的情况下返回-1(在比较第一个参数与数组中的每一项时,会使用全等操作符);
补充:.lastIndexOf()方法,相反,从数组的末尾开始向前查找;
9、.find()方法
使用:
arr.find((value, keys, arr) => {
return value > 2;
}); // 返回匹配的值
arr.findIndex((value, keys, arr) => {
return value > 2;
}); // 返回匹配位置的索引
简述:.find()方法是返回匹配的值,value: 数组的某个元素,keys: 该元素对应的索引位置,arr: 数组本身;补充:.findIndex()方法,是返回匹配元素索引;
10、.flat()方法
使用:
const arr2 = [0, 1, 2, [[[3, 4]]]];
console.log(arr2.flat(2));
//输出[0, 1, 2, [3, 4]]
//指定要提取嵌套数组层数2层,
const arr3 = [1, 2, , 4, 5];
console.log(arr3.flat());
// 输出[1, 2, 4, 5]
// 扁平化数组空项,如果原数组有空位,flat()方法会跳过空位
[2, 3, 4].flatMap((x) => [x, x * 2])
// 输出[2, 4, 3, 6, 4, 8]
// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
简述:提取嵌套数组的结构深度,默认值为 1/Infinity,然后扁平化数组空项,如果原数组有空位,跳过空位;补充:.flatMap()方法,对原数组的每个成员执行一个函数,然后对返回值组成的数组执行flat()方法;
11、.entries(),.keys()和.values()方法
使用:
for (let [index, elem] of [ a , b ].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"
for (let index of [ a , b ].keys()) {
console.log(index);
}
// 0
// 1
for (let elem of [ a , b ].values()) {
console.log(elem);
}
// a
// b
简述:返回一个遍历器对象,可以用for...of循环进行遍历;
.entries()是对键值对(键名和键值)的遍历;
.keys()是对键名的遍历;
.values()是对键值的遍历;
还有很多数组方法,这次先到这,记得点赞收藏呀(●'◡'●)