2.JS 语法
- 2.1.语法
- 2.2.表达式
- 2.3.运算符优先级
- 2.4.错误
# map, filter, reduce
涉及面试题:map, filter, reduce 各自有什么作用?
# map
map 的作用是 map 中传入一个函数,该函数会遍历该数组,对每一个元素做变换之后返回新数组。 map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。 map方法接受一个函数作为参数。 回调函数有三个参数, elem为当前成员的值, index为当前成员的位置, arr为原数组([1, 2, 3])。
var numbers = [1, 2, 3];
numbers.map(function (n) {
return n + 1;
});// [2, 3, 4]
numbers// [1, 2, 3]
1
2
3
4
5
6
7
2
3
4
5
6
7
# filter
filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回。 它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。 filter方法的参数函数可以接受三个参数:当前成员,当前位置和整个数组。
[1, 2, 3, 4, 5].filter(function (elem) {
return (elem > 3);
})// [4, 5]
1
2
3
2
3
# reduce
reduce 可以将数组中的元素通过回调函数最终转换为一个值。 reduce方法的第一个参数都是一个函数。该函数接受以下四个参数。 1.累计值,默认为数组的第一个成员 2.当前变量,默认为数组的第二个成员 3.当前位置(从0开始) 4.原数组 这四个参数之中,只有前两个是必须的,后两个则是可选的。 reduce 可以将数组中的元素通过回调函数最终转换为一个值。
[1, 2, 3, 4, 5].reduce(function (a, b) {
return a + b;
}, 10) // 25
let arr = [1,2,3]
let sum = arr.reduce(function(acc,element){
return acc + element;
},0) // 6
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8