追求JS小姊姊系列 Day6 -- 郑列展现的工具力(上)

前情提要

郑列疑似烙下狠话,正要展现工具实力?!

郑列:我说啊,你知道身为工具人要会做哪些事吗?

答案是:实在是太多了

因此,很明确知道自己的独特性是很重要的。
像我就很明确认知了自己的替身 工具能力,并区分出了几个面向:

  1. 快速找出:乱堆中朋友们送的杂物(元素)的方法
    a.find()
    b.includes()
  2. 快速找出乱堆中朋友们送的杂物位置(索引值)的方法
    a.lastIndexOf()
    b.indexOf()

还有...

不过废话不多说,先让你见识一下我的实力吧。


工具力启动之 -- 姊,忘记东西是否存在也没关系喔

郑列:只要是人,东西难免增加,增加了就会乱堆,乱堆了就找不太到。
如果今天,JS只是想确认特定内容(像是:数值)是否存在。
只要东西放在我这里,就可以使用我的这个能力: find()includes()

Array.prototype.find():

公式:find(callback((element,index))
公式解释:

  1. callback:所有阵列内的元素都会被这个函式执行
  2. element:目标阵列内的元素
  3. index:元素的索引值位置(选择性)

是否会回传值

  1. 符合条件:会回传找到符合条件的第一个元素
  2. 不符合条件:回传undefined

Q1:想确认是否有收过价值 $9000以上的东西?
今天JS想确定收过的礼物价值,该怎麽做?交给郑列


//当你想确认阵列是否包含54
let x = [54,53,52,51,55,9100,13];

let y = x.find(element => element > 9000);
console.log(y,"如果有内容,代表有的喔!");

Q2:确认是否有谁没送礼物
感觉字串那家伙跟我有点疏远,是不是她其实没送过我礼物,交给郑列!

let x = 
["string",55,56,70,80,305,1330,1400,"Hi"];

//检查是否有字串型别内容
console.log(x.find((element)=>(element === typeof "String")));

备注:姐妹们送的东西,代表各型别内容(像是数字姐送的就是Number内容)

Array.prototype.includes():

公式:includes(callback((element,index))
公式解释:

  1. callback:所有阵列内的元素都会被这个函式执行
  2. element:目标阵列内的元素
  3. fromIndex:开始搜寻的元素索引值位置(选择性),如果输入值大於等於阵列长度,不会执行搜寻,会直接回传false

是否会回传值

  1. 符合条件:会回传布林值
  2. 不符合条件:回传undefined

let x = [54,{strangePerson:"安迪",age: "??",tall:"??"},[1,2,3,5,6]];

console.log(x.includes(54));
//印出:true


工具力启动之 -- 姊,忘记东西位置也没关系喔

Array.prototype.findIndex()

公式:findIndex(callback((element,index))
公式解释:

  1. callback:所有阵列内的元素都会被这个函式执行
  2. element:目标阵列内的元素
  3. index:元素的索引值位置(选择性)

是否会回传值

  1. 符合条件:会回传目标元素的索引值
  2. 不符合条件:回传-1

Q1:知道东西名称,但不知道位置时
总之,交给郑列!

let x = [12,543,75,true,"我要找这个"];

let trys = (value)=> typeof value === "string";
console.log(x.findIndex(trys));

Array.prototype.lastIndexOf()

公式:lastIndexOf(callback((element,index))
公式解释:

  1. callback:所有阵列内的元素都会被这个函式执行
  2. element:目标阵列内的元素
  3. fromIndex:开始搜寻元素的索引值位置(选择性)

是否会回传值

  1. 符合条件:会回传目标值的最大索引值位置
  2. 不符合条件:回传undefined

Q1:JS不太需要这个能力,不过还是交给..郑列

let jsBox = ["JS的工具人","字串姊的礼物",54,true,"初代的礼物","字串姊的礼物","JS的工具人"];

//有这东西的情境
console.log(jsBox.lastIndexOf("JS的工具人"))

//没这东西的情境
console.log(jsBox.lastIndexOf("JS的男友"))

郑列:哼哼,是不是被我的能力吓到了~
:不.. 只是能理解为何你只能当工具人。
郑列:...我看你是完全不懂喔,这还不是我的全部呢!

-- to be continued --


那今天就到这边搂!今天分享喜欢的歌是:
Guns N' Roses - Sweet Child O' Mine (Official Music Video)
https://www.youtube.com/watch?v=1w7OgIMMRc4

每天的休息,是为了後面的追求,明天见。

参考资料:

https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/find


<<:  [Tableau Public] day 21:台湾姓氏分布-观察资料

>>:  新新新手阅读 Angular 文件 - Component - Day21

第 14 天 我不是要压榨你我是给你个成长的机会|Reactive Form

前情提要 我们整理专案後,现在专案有更明确的模组来封装元件,不仅让 App 效能提升,也让专案更「语...

【Day 07】Sorting:Insertion Sort 插入排序法 ( 用 JavaScript 学演算法 )

插入排序法是将阵列中未排序的元素,逐一与排序好的资料作比较。它的时间复杂度是 (O(n^2))。 ...

GitHub Autolinked references & Permanent link - 团队讨论的专业技巧

在资讯团队进行讨论的过程中,不免会提到相关 Issue、Pull Request 与 程序码。无论是...

安全意识,培训和教育(security awareness, training and education)

所有雇员(All employees) 总体上,“所有员工”是接受或参加意识介绍或活动的理想目标,...

[JS] You Don't Know JavaScript [Async & Performance] - callbacks

前言 在JavaScript中Callback是最基础的也使最常用来处理非同步的方式,而callba...