数组中map和filter的使用和区别
在JavaScript中,map()和filter()是数组方法,用于对数组进行遍历和过滤。
map()方法通过对数组中的每个元素应用一个函数,生成一个新的数组。例如:
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(function(num) {
return num * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
在这个例子中,map()方法对numbers数组中的每个元素应用了一个函数,这个函数将每个元素乘以2,生成了一个新的数组doubled。
filter()方法通过对数组中的每个元素应用一个函数,生成一个新的数组,这个新数组包含所有符合条件的元素。例如:
const numbers = [1, 2, 3, 4, 5];
const even = numbers.filter(function(num) {
return num % 2 === 0;
});
console.log(even); // [2, 4]
在这个例子中,filter()方法对numbers数组中的每个元素应用了一个函数,这个函数检查一个元素是否为偶数,返回符合条件(即偶数)的元素,生成了一个新的数组even。
因此,map()和filter()的区别在于,map()方法生成一个新的数组,其中的每个元素都是对原数组中的对应元素应用函数的结果,而filter()方法生成一个新的数组,其中的元素都是原数组中符合条件的元素。