一个例子说明filter的基本用法: let ar = ["1", "2"];let obj = {"key": "value"};function config(currentValue, index, arr) { console.log("currentValue is " + currentValue + " index is " + index + " arr is " + arr); let that = this; console.log("key is " + that.key); if (currentValue === "1") { return false; } return true;}let filterAr = ar.filter(config, obj);console.log(JSON.stringify(filterAr));贴一下执行结果:
补充说明几点: - filter第一个函数参数的三个参数无须显式传递,也不能显式传递(会报参数未定义),在定义第一个函数参数(即config函数)时这个函数的参数也必须严格按照filter的定义使用;
- filter的第二个参数如未传递,则为默认的undefined,也不能在第一个函数参数中使用(只有传递时才能使用);
- filter第一个函数参数的返回值应为布尔值,filter会根据这个返回值决定是否把当前值(currentValue)放入最终的返回数组(filterAr);
|
|