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},
// ];


谢谢你的阅读。





本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):