filter()
filter的作用是帮我们过滤出想要的数据,它接受一个函数,可以是箭头函数,函数中第一个参数是必须要传的,作为数组的每一项,要注意的是filter不会返回数据,所以不要return一个具体的值,并且它本身是不会对原函数进行修改的。
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
结果:32,33,40
reduce()
reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。以下代码中pre表示初始值,并且每次遍历都会保存下来,初始值由函数最后的参数决定,这里我传的是0,这里的todo是数组每一项。程序整体是实现todos数组中查找done属性为true的有几个,并交给pre返回。
const todos = [{id:'1',done:true},{id:'2',done:false}]
const sum = todos.reduce((pre,todo)=>{return pre + (todo.done ? 1 : 0)},0)
结果: 1