map
对数组进行遍历,进行一些操作,返回一个新的数组,不影响原数组。
const arr = [1,3,5,7,9]
const newArr = arr.map( item => item + 1)
console.log(arr) //打印原数组[1, 3, 5, 7, 9]
console.log(newArr) //打印新数组[2, 4, 6, 8, 10]
foreach
遍历数组,不影响原数组。
const arr = [1, 3, 5, 7, 9]
arr.forEach((item,index,arr) => {
console.log(item + 1); //2,4,6,8,10
})
console.log(arr); //[1,3,5,7,9]
filter
筛选出数组中符合条件的项,组成一个新数组,不影响原数组。
var arr = [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
var newArr = arr.filter((item,index,arr) => {
return item % 2 == 0 //返回偶数
})
console.log(newArr) // [2, 4, 6, 8, 10, 12, 14]
console.log(arr) // [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
reduce
让数组中的前项和后项做某种计算,并累计最终值
arr.reduce(function(prev,cur,index,arr){
...
}, init);
- prev——上一次调用回调时的返回值,或者初始值 init
- cur——当前正在处理的数组元素
- index——当前正在处理的数组元素的索引
- arr——原数组
- init——初始值(默认为0)
虽然函数的参数很多,但是常用的只有两个:prev和cur
eg:
const arr = [1, 3, 5, 7, 9]
const total = arr.reduce((pre, cur,index,arr) => {
return pre + cur
},0)
console.log(total);// 25
console.log(arr); // [1, 3, 5, 7, 9]
every
对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。
var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log(arr.every(( item, index, array ) =>
return item > 3;
));
// false
some
对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。
var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log(arr.some(( item, index, array ) =>
return item > 3;
));
// true