通过向filter
方法传递自定义函数,可以在Javascript中过滤数组:
const bigArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const filteredArray = bigArray.filter(item => item < 5);
将函数作为“参考”传递也是可能的:
function largerThanFive(item) {
return item => item < 5;
}
const bigArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const filteredArray = bigArray.filter(largerThanFive);
我尝试使用下面的方法通过交集运算符(intersect)来对两个数组进行交集操作:
const bigArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const smallArray = [0, 1, 2];
const filteredArray = bigArray.filter(smallArray.includes);
但是我收到了错误提示:
TypeError: 无法将未定义或空值转换为对象
我不明白为什么会出现这个错误。有人可以详细解释一下吗?
bind
或箭头函数绑定等方式),否则您已经失去了对this
的引用。 - Scott Sauyet