ES6中数组常用的几个方法
1、forEach
功能:遍历数组的全部元素,利用回调函数对元素做相应处理,
注意: forEach()函数不支持 break; 跳出循环,也没有返回值,return只用于跳出当前循环,进入下一轮循环。
示例:
let arr = [
{name:"chencan",age:20},
{name:"ouyangxiu",age:24},
{name:"tiger",age:45},
{name:"mike",age:77}];
arr.forEach(v => {
if (v.name === "tiger") {
return;
}
console.log(v.name + "--" + v.age);
})
// chencan--20
// ouyangxiu--24
// mike--77
2、find
功能:不创建新数组,不改变原数组,遍历数组,返回数组中找到的第一个符合条件的元素,找到后立即跳出整个循环,没找到返回undefind
示例:
# 第一种情况
let arr = [1,2,3,4,5,6];
let newArr = arr.find(item => {
return item >3 && item < 6;
});
//newArr = 4
# 第二种情况
let arr = [1,2,3,4,5,6];
let newArr = arr.find(item => {
return item >6 && item < 10;
});
//newArr = undefind
3、some
功能:用于检测数组中的元素是否符合条件,如果有哦一个元素符合则返回true,否则返回false;
示例:
let arr = [1,2,3,4,5];
let newArr = arr.some(item => {
return item > 3;
});
//newArr = true
let arr = [1,2,3,4,5];
let newArr = arr.some(item => {
return item > 10;
});
//newArr = false
4、map
功能:在不改变原数组的情况下,更新数组,并返回这个新数组
示例:
let arr = [1,2,3,4,5];
let newArr = arr.map(item => {
//可以对原数组中的值进行相应处理
return `这是第${item}次`;
})
//newArr = ["这是第1次","这是第2次","这是第3次","这是第4次","这是第5次"]
5、filter
功能:在不改变原数组的情况下,创建一个数组,新数组内容是方法中判断为true的所有元素组合成的新数组
示例:
let arr = [1,2,3,4,5,6,7,8,9,10];
let newArr = arr.filter(item => {
return item%2 === 0;
});
//newArr = [2,4,6,8,10]
6、reduce
功能:叠加数组,
回调函数的参数:
pre: 上一次计算的结果
next: 当前元素的下一项
index: next项的序列
arr: 数组本身
示例:
// 求和计算 var arr = [1,2,3,4] let sum = arr.reduce((prev, next, index) => { console.log(prev, next, index) // index 从1开始 /* *第一次:pre-->1 next-->2 index--> 1 *遍历计算return得结果为pre+next=1+2=3 *第二次:pre-->3 next-->3 index-->2 *遍历计算return得结果为pre+next=3+3=6 *第三次:pre-->6 next-->4 index-->3 *遍历计算return得结果为pre+next=6+4=10 */ return prev + next }) console.log(sum) // 10 //扁平化数组 var arr = [[1,2],[3,4,5],[6,7]] let sumArr = arr.reduce((prev, next, index) => { console.log(prev, next, index) // index 从1开始 return prev.concat(next) }) console.log(sumArr) // [1, 2, 3, 4, 5, 6, 7] //对象数组叠加计算 var arr = [
{price:10,count:1}, {price:15,count:2}, {price:20,count:3}]; let sum = arr.reduce((prev, next, index) => { console.log(prev, next, index) // index 从0开始 // 0 {price: 10, count: 1} 0 // 1 {price: 15, count: 2} 1 // 2.5 {price: 20, count: 3} 2 //当需要操作第一项的时候,利用reduce(callbreak(){},往数组第一项前添加一项,如:0),index也从0开始 return prev + next.price*0.1 }, 0) console.log(sum) // 4.5
7、every
8、includes
功能:判断数组中是否包含某个值,不用return,也不用回调函数
示例:
let arr = [1,2,3,4,5,6,7];
let new1 = arr.includes(2); // true
let new2 = arr.includes(2); // false
9、join
功能:方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的
let arr = ["zhangsan", "lisi", "wangwu", "zhaoliu"];
let result = arr.join(",");
//result的值
"zhangsan,lisi,wangwu,zhaoliu"