Emoji 表情还能这样玩?

开发 前端
对于前端工程师来说,在日常工作中,我们经常要跟数组打交道。利用数组对象上提供的一些方法,我们可以方便地实现对数组进行各种操作。

[[421754]]

「绘文字(日语:絵文字/えもじ emoji)」 是日本在无线通信中所使用的视觉情感符号,绘指图画,文字指的则是字符,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。在平时的工作和生活中,我们也经常使用到 Emoji 表情。相信大家对以下这些 Emoji 表情都不会陌生:

利用 Emoji 表情不仅可以增加聊天的乐趣性,而且还可以玩出一些 “花样”。比如在地址栏上实现 url 动画:

在以上动图中,最下方 Tab 页显示的是 「音/视频播放器的播放进度条」。不仅如此,我们还可以利用 Emoji 表情实现图形动画:

看完以上的动图,有没有觉得挺惊讶的 —— “Emoji 竟然还能这样玩”。

对于前端工程师来说,在日常工作中,我们经常要跟数组打交道。利用数组对象上提供的一些方法,我们可以方便地实现对数组进行各种操作。这里我们对 JavaScript 数组方法进行了简单的分类和汇总,具体如下图所示:

上图中列出的大部分方法,相信你平时的工作中也会有用到。接下来,阿宝哥将使用 Emoji 来帮助大家更好地理解 JavaScript 数组常见的 「16」 个方法。

1. map 方法

map 方法用于创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

  1. const hungryMonkeys = ["🐒""🦍""🦧"]; 
  2. const feededMonkeys = hungryMonkeys.map((m) => m + "🍌"); 
  3. console.log(feededMonkeys); 
  4. // [ '🐒🍌''🦍🍌''🦧🍌' ] 

方法使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map

2. filter 方法

filter 方法会创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

  1. const guests = ["👩👨""👩👩""👨""👩""👨👨"]; 
  2. const singles = guests.filter((g) => g.length / 2 === 1); 
  3. console.log(singles); 
  4. // [ '👨''👩' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

3. some 方法

some 方法用于测试数组中是不是至少有 1 个元素通过了被提供的函数测试。

  1. const participants = ["🔇""🔇""🔊""🔇""🔊"]; 
  2. const isLoud = (p) => p === "🔊"
  3. const troubles = participants.some(isLoud); 
  4. console.log(troubles); 
  5. // true 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some

4. every 方法

every 方法用于检测数组所有元素是否都符合函数定义的条件。

  1. const visitors = ["👨""👽""👨""👨""🤖"]; 
  2. const isHuman = (e) => e === "👨"
  3. const onlyHumans = visitors.every(isHuman); 
  4. console.log(onlyHumans); // false 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/every

5. push 方法

push 方法用于向数组的末尾添加一个或多个元素,并返回新的长度。

  1. const animals = ["🐂""🐒""🐔"]; 
  2. animals.push("🐴""🐑"); 
  3. console.log(animals); 
  4. // [ '🐂''🐒''🐔''🐴''🐑' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/push

6. concat 方法

concat 方法用于合并两个或多个数组,返回一个新数组。

  1. const dogs = ["🐶""🐶"]; 
  2. const cats = ["🐱""🐱""🐱"]; 
  3. const pets = dogs.concat(cats); 
  4. console.log(pets); 
  5. // [ '🐶''🐶''🐱''🐱''🐱' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

7. unshift 方法

unshift 方法用于向数组的开头添加一个或更多元素,并返回新的长度。

  1. let train = ["🚃""🚃""🚃""🚃"]; 
  2. train.unshift("🚂"); 
  3. console.log(train); 
  4. // [ '🚂''🚃''🚃''🚃''🚃' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift

8. splice 方法

splice 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。

  1. let weather = ["☁️""🌧️""☁️"]; 
  2. weather.splice(1, 2, "☀️"); 
  3. console.log(weather); 
  4. // [ '☁️''☀️' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

9. slice 方法

slice 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。

  1. const solutionsOfClassmates = ["📃""📑""📄""📝"]; 
  2. const myOwnSolutionReally = solutionsOfClassmates.slice(2, 3); 
  3. console.log(myOwnSolutionReally); 
  4. // [ '📄' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

10. reverse 方法

reverse 方法将数组中元素的位置颠倒,并返回该数组。

  1. let rabbitWins = ["🐇""🦔"]; 
  2. const hedgehogWins = rabbitWins.reverse(); 
  3. console.log(hedgehogWins); 
  4. // [ '🦔''🐇' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse

11. sort 方法

sort 方法用于对数组元素进行排序,并返回这个数组。

  1. const books = ["📕""📗""📕""📒""📗""📒"]; 
  2. books.sort(); 
  3. console.log(books); 
  4. // [ '📒''📒''📕''📕''📗''📗' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

12. join 方法

join 方法用于把数组中的所有元素通过指定的分隔符进行分隔放入一个字符串,返回生成的字符串。

  1. const devices = ["💻""🖥️""🖥️""💻""🖨️"]; 
  2. const network = devices.join("〰️"); 
  3. console.log(network); 
  4. // 💻〰️🖥️〰️🖥️〰️💻〰️🖨️ 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/join

13. includes 方法

includes 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。

  1. const food = ["🥦""🥬""🍅""🥒""🍩""🥕"]; 
  2. const caught = food.includes("🍩"); 
  3. console.log(caught); 
  4. // true 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

14. flat 方法

flat 方法用于拍平嵌套数组对象。

  1. const savings = ["💵", ["💵""💵"], [[["💰"]]]]; 
  2. const loot = savings.flat(3); 
  3. console.log(loot); 
  4. // [ '💵''💵''💵''💰' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/flat

15. fill 方法

fill 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素,不包括终止索引。

  1. let seeds = ["🌱""🌱""🌱""🌱""🌱"]; 
  2. seeds.fill("🌳", 1, 4); 
  3. console.log(seeds); 
  4. // [ '🌱''🌳''🌳''🌳''🌱' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fill

16. from 方法

from 方法用于从一个类数组或可迭代对象创建一个新的浅拷贝的数组实例。

  1. const wild = "🐻🐯🦁"
  2. const tamed = Array.from(wild); 
  3. console.log(tamed); 
  4. // [ '🐻''🐯''🦁' ] 

使用文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from

看完以上这 16 个方法,是不是有点意犹未尽。最后阿宝哥再分享一张在 Promise 竟被他玩出了四十八种花样 文章中使用的数组方法示例图:

 

好的,关于 Emoji 的一些好玩、有趣、有用的东西,就介绍到这里。

 

责任编辑:武晓燕 来源: 全栈修仙之路
相关推荐

2020-11-16 13:38:31

PostMessage

2021-07-28 06:10:47

拖拽设计器 transmat

2024-08-02 08:38:20

Controller接口地址

2024-01-30 09:21:29

CSS文字效果文字装饰

2018-12-12 11:30:54

JavaString字符串

2021-04-09 08:23:30

Css前端加载动画

2023-02-26 00:00:02

字符串分割String

2020-05-22 10:00:08

数据库数据库设计软件设计

2021-01-30 07:51:59

微信微信8.0腾讯

2023-01-30 08:46:20

GoGo1兼容性

2021-05-08 19:16:38

Python开发Emoji

2022-10-31 08:47:21

人脸识别按键键盘

2019-11-08 10:48:07

Windows操作系统微信Windows 10

2021-10-29 07:49:22

Spring事务管理

2020-05-09 16:45:56

ping命令Linux

2016-09-23 15:36:53

Windows10开始菜单程序

2012-07-13 11:32:16

网络出口

2020-09-14 11:26:54

BinlogCanal数据库

2024-03-25 08:03:32

技术面试ShowMeBug协同编程

2024-10-28 07:10:00

scroll标记前端网格布局
点赞
收藏

51CTO技术栈公众号