JavaScript的filter是什么
javaScript 中的过滤器方法是一种非常容易理解和实现的方法,我已经涵盖了您需要了解的一切。
该方法创建一个新的数组,其中充满了旧数组的所有元素,这些元素通过特定测试后作为函数提供。filter
()
让我们来看看语法:
let new = array.filter((v, i, a) => {
// return element to new if condition are met
// skip element if conditions are not met
});
// new - the array that is returned
// array - the array to run the filter function on
// v - the current value being processes
// i - the current index of the value being processed
// a - the original array
该方法可以从循环中过滤,该循环专门用于从数组中筛选出特定值。请参阅下面的示例:filter()
let nums = [11, 12, 13, 14, 15, 16];
let evenNums = [];
for(var i = 0; i < nums.length; i++) {
if (nums[i] % 2 === 0) evenNums.push(nums[i]);
}
// evenNums = [12,14,16]
此代码测试数字数组中的所有值。符合条件的值会被推入偶数数组。是的, 这就是它的工作原理, 但有一个更容易的方法来达到相同的结果。
使用该方法重写上一个函数。filter()
let nums = [11,12,13,14,15,16];
let evenNums = nums.filter(value => value % 2 === 0);
// evenNums = [12,14,16]
看看吧没有任何循环。
使用箭头功能,我们有一个漂亮和干净的功能,以创建相同的数组。因为我们只使用值,我们只传递给方法。filter()
现在,我们将看到一个更复杂的示例,它利用了一组对象。以下是我们将使用的数据作为示例。
let data = [
{
country: 'Netherlands',
population: 17122267, 1,
},
{
country: 'Germany' ,
population: 83694772,
},
{
country: 'United Kingdom',
population: 67767045,
},
{
country: 'Belgium' ,
population: 11572813,
}
];
那现在怎么办?
我们希望只与人口少于5000万的国家建立一个新的数组。要做到这一点,我们要做的就是测试我们的数据并返回真实的 ID数据。
let smallCountries = data.filter(v => v.population > 50000000);
只是这个单行代码确保只有较小的国家才能使它成为我们的新数组。尽管我们的数据比较复杂,但过滤过程仍然相对不变。运行过滤器功能后,我们只剩下这个:
// smallCountries = [
// {country: "Netherlands", population: 17122267},
// {country: "Belgium", population: 11572813},
// ];
谢谢你的阅读。
发表评论 (审核通过后显示评论):