JS:filter()方法解析

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JS:filter()方法解析

filter() 方法会创建了一个新的数组,其中包含了旧数组中所有通过某个测试的元素,该方法是以函数形式提供的。


让我们来看看语法:


let new = array.filter((v, i, a) => {
    // 如果满足条件,元素会返回给new
    // 如果不满足条件则跳过该元素
});
// new - 新建的数组
// array - 被过滤的数组
// v - 当前被处理的值,也就是value
// i - 当前被处理值的索引,也就是index
// a - 原始数组,也就是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]
复制代码

这段代码测试了nums数组中所有的值,只有偶数值被接受并push到了evenNums数组中。


虽然这样写是可以的,但有一个更简单的方法来实现同样的结果。

我们使用 filter() 方法重写前面的函数:


let nums = [11,12,13,14,15,16];
let evenNums = nums.filter(value => value % 2 === 0); 
// evenNums = [12,14,16]
复制代码

看,没有任何循环。


我们可以用一个干净漂亮的函数来创建同样的数组。因为我们只用数组中的值value,所以只把值传递给 filter() 方法就可以了。


现在我们看一个更加复杂的例子——一个对象数组,下面是我们需要使用的数据:


let data = [ 
    { 
        country: 'Netherlands',
        population: 17122267,  
    },
    {  
        country: 'Germany' , 
        population: 83694772, 
    },
    {  
        country: 'United Kingdom',
        population: 67767045, 
    },  
    {
        country: 'Belgium' , 
        population: 11572813, 
    }
];
复制代码


So now what?


我们想要创建一个新的数组,其中只包含人口小于5000万的国家,我们需要测试数据并返回正确的数据,那些 data.population 小于5000万的国家的数据。


let smallCountries = data.filter(v => v.population > 50000000);
复制代码


只需要这一行代码就能确保小人口的国家进入我们的新数组。

尽管我们的数据更加复杂,但是过滤的过程相对没有变化。

在运行过我们的过滤函数后,我们得到了这个:


// smallCountries = [
// {country: "Netherlands", population: 17122267},
// {country: "Belgium", population: 11572813},
// ];
复制代码


就到这里了,感谢你的阅读!

目录
相关文章
|
2天前
|
存储 算法 安全
深入解析 X509Certificate:成员变量与方法详解
深入解析 X509Certificate:成员变量与方法详解
11 2
|
2天前
|
安全 Java UED
深度解析Java中方法内的异步调用实践与应对方案
深度解析Java中方法内的异步调用实践与应对方案
8 1
|
7天前
|
机器学习/深度学习 算法 数据挖掘
算法金 | K-均值、层次、DBSCAN聚类方法解析
**摘要:** 这篇文章介绍了聚类分析的基本概念和几种主要的聚类算法。聚类是无监督学习中用于发现数据内在结构的技术,常用于市场分析、图像分割等场景。K-均值是一种基于划分的算法,简单高效但易受初始值影响;层次聚类包括凝聚和分裂方式,形成层次结构但计算复杂;DBSCAN基于密度,能处理任意形状的簇,但参数选择敏感。文章还讨论了这些算法的优缺点和适用场景,并提供了相关资源链接和Python实现。
33 9
算法金 | K-均值、层次、DBSCAN聚类方法解析
|
1天前
|
XML JavaScript Java
解析XML文件的几种方法
解析XML文件的几种方法
|
2天前
|
JavaScript 前端开发 开发者
JavaScript中的const关键字解析
JavaScript中的const关键字解析
12 2
|
2天前
|
JSON 安全 Java
深入解析Jackson的ObjectMapper:核心功能与方法指南
深入解析Jackson的ObjectMapper:核心功能与方法指南
9 1
|
5天前
|
存储 JavaScript 前端开发
JavaScript中的对象是数据结构,存储键值对,键为字符串,值可为任意类型,包括函数(作为方法)
【6月更文挑战第25天】JavaScript中的对象是数据结构,存储键值对,键为字符串,值可为任意类型,包括函数(作为方法)。
10 2
|
6天前
|
数据采集 算法 BI
解析numpy中的iscomplex方法及实际应用
在 NumPy 中,iscomplex 函数用于检查数组中的每个元素是否为复数。这个函数在处理包含复数数据的数组时非常有用,尤其是在科学计算和工程领域,这些领域经常需要区分实数和复数。 在数学和工程领域,复数是一种基本的数值类型,它们扩展了实数系统,包含了实部和虚部。在 NumPy 中,复数由 numpy.complex128 或 numpy.complex64 类型表示。numpy.iscomplex 函数提供了一种简便的方式来检查数组中的元素是否为复数。这对于数据类型判断、数据清洗和后续的数值分析非常重要。
|
5天前
|
存储 JSON 前端开发
JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓
JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓
|
7天前
|
缓存 JavaScript 前端开发
JS代码拆分方法 是对的还是错的?
JS代码拆分方法 是对的还是错的?
10 3

热门文章

最新文章

推荐镜像

更多