【JavaScript】阵列方法之filter()

【前言】
本系列为个人前端学习之路的学习笔记,在过往的学习过程中累积了很多笔记,如今想藉着IT邦帮忙这个平台做整理+再复习。
本系列标题一律以【】标示该篇文章主要涉及的内容,例如【JavaScript】、【Vue】等等。
若内容有误,还麻烦各路大神不吝於点出问题,感激不敬。


在JavaScript中有许多操作阵列的方法,本篇将针对filter()
filter()最大的用途就是筛选资料,阵列.filter(callback function)会将阵列中的资料一笔一笔作为参数带入callback function中,当callback function return的值为true的时候,该资料就会被放到新的阵列中

例如这是一个「将大於3的资料放到新阵列」的范例:

const array = [1, 2, 3, 4, 5];
const newArray = array.filter(function(item, index, array){
  return item > 3;
});
console.log(newArray); //[4, 5]

在这个案例中我们可以看到filter()的callback function有三个参数
第一个是阵列资料本身,以这个案例来说就是array的资料,这里我将参数名称命名为item
第二个是阵列资料的索引位置
第三个则是阵列本身,通常用到的机会不多

要注意的是,这三个参数名称都是可以自订的,但顺序一定是这样(第一个是资料,第二是索引,第三是阵列)
直接替换看看会发生什麽事:

const array = [1, 2, 3, 4, 5];
const newArray = array.filter(function(index, item, array){
  return item > 3;
});
console.log(newArray); //[5]

在这个案例中,误以为item代表资料的结果就是,这里的item其实是资料的索引值,因此只有5的索引值大於3,所以最终newArray就只有一笔资料

filter()不会修改原始阵列,新阵列也和原始阵列无关

filter()如同其名,是拿来筛选阵列资料的方法,并不会动到原始阵列
最常见的用法是将A阵列的资料透过filter()筛选,然後符合的资料丢到一个新阵列B里面
此时阵列A和阵列B是完全不相关的,即便每次都是true,最终内容看起来一样也是

const array = [1, 2, 3, 4, 5];
const newArray = array.filter(function(item){
  return item > 0;
});
console.log(newArray === array); //false

<<:  3. STM32-GPIO初探

>>:  【JavaScript】阵列方法之forEach()

Day 25: 边界:画线、剖析、预留 (待改进中... )

「软件架构就是画线的艺术,我称这些线为边界 (Boundaries)」 「架构师的目标是尽量减少建...

面对拒绝

前言 昨天探讨了面对变化的态度与重要性,今天再次从自己出发,透过细微的观察来化解问题,进而让团队合作...

第45篇-lsmod命令

进度 : 鸟哥的 Linux 私房菜 -- 第十九章、开机流程、模组管理与 Loader 的 lsm...

[day-3] 一切的开端,认识你所使用的工具,Visual Studio Code !(Part .1)

何谓Visual Studio Code ?   Visual Studio Code(简称 VS ...

Rails belong_to

belongs_to 的设定 optional 在 Rails 5.1 之後的版本,belongs_...