范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

厉害了,一个更智能的JavaScript映射器array。flatMap()

  array.map()  是一个非常有用的映射函数:它接收一个数组和一个映射函数,然后返回一个新的映射数组。
  然而,有一个替代  array.map() 的方法:array.flatMap() (从ES2019开始可用)。这个方法给了我们映射的能力,但也可以在生成的映射数组中删除甚至添加新的项目。 1. 更加智能的映射器
  有一个数字数组,我们要如何创建一个新的数组,使用每个数字加倍?
  使用 array.map() 函数是一个好方法。 const numbers = [0, 3, 6]; const doubled = numbers.map(n => n * 2); console.log(doubled); // logs [0, 6, 12]
  地址:https://jsfiddle.net/dmitri_pavlutin/7g5fz93y/
  numbers.map(number => 2 * number)  将 number  数组映射到一个新的数组,其中每个数字都被翻倍。
  对于需要一对一映射的情况,也就是说,映射后的数组与原始数组的项数相同, array.map() 的效果非常好。
  但如果我们需要将一个数组的数字翻倍,同时跳为 0 的项,该怎么办?
  直接使用  array.map()  是不可能的,因为该方法总是创建一个映射的数组,其项数与原数组相同。但是我们可以使用 array.map() 和 array.filter()  的组合。 const numbers = [0, 3, 6]; const doubled = numbers   .filter(n => n !== 0)   .map(n => n * 2); console.log(doubled); // logs [6, 12]
  事例地址:https://jsfiddle.net/dmitri_pavlutin/cvtjyLpo/
  array.map() 和 array.filter()  可以解决问题,但有没有更简短的方法?
  必须滴。使用  array.flatMap()  方法,只需调用一个方法就可以执行映射和删除项目。 const numbers = [0, 3, 6]; const doubled = numbers.flatMap(number => {   return number === 0 ? [] : [2 * number]; }); console.log(doubled); // logs [6, 12]
  事例地址:https://jsfiddle.net/dmitri_pavlutin/j945qunz/
  通过只使用  numbers.flatMap() ,你可以将一个数组映射到另一个数组,但也可以从映射中跳过某些元素。
  接着,我们来更详细地看看  array.flatMap() 是如何工作的。 2. array.flatMap()
  array.flatMap()  函数接受一个回调函数作为参数并返回一个新的映射数组 const mappedArray = array.flatMap((item, index, origArray) => {   // ...   return [value1, value2, ..., valueN]; }[, thisArg]);
  回调函数在原数组中的每个iteam上被调用,有3个参数:当前项、索引和原数组。然后,回调函数返回的数组被扁平化了1层,得到的项目被添加到映射的数组中。
  此外,该方法还接受第二个可选参数,表示回调内部的  this  值。
  使用  array.flatmap() 最简单的方法是将包含项目的数组扁平化 const arrays = [[2, 4], [6]]; const flatten = arrays.flatMap(item => item); console.log(flatten); // logs [2, 4, 6]
  事例地址:https://jsfiddle.net/dmitri_pavlutin/5rwvcz17/
  但是 array.flatMap() 除了简单的扁平化之外,还可以做更多的事情。通过控制从回调中返回的数组项的数量: 通过返回一个空数组从结果数组中删除该项  通过返回一个带有一个新值的数组  [newValue]  来修改映射的项 通过返回一个包含多个值的数组来添加新项:  [newValue1, newValue2, ...]
  例如,正如你在上一节中所看到的,可以通过将项目加倍来创建一个新的数组,但同时也要删除  0 。 const numbers = [0, 3, 6]; const doubled = numbers.flatMap(number => {   return number === 0 ? [] : [2 * number]; }); console.log(doubled); // logs [6, 12]
  现在,我们来看下它是怎么工作的。
  如果当前项为  0 ,回调函数返回一个空数组 [] 。这意味着当被扁平化时,空数组[] 没有提供任何值。
  如果当前迭代项非零,则返回  [2 * number] 。当扁平[2 * number] 数组时,结果数组中只添加2 * number 。
  你也可以使用  array.flatMap() 来增加映射的数组中的项目数量。
  例如,下面的代码片段通过添加两倍和三倍的数字将一个数字数组映射到一个新数组:  const numbers = [1, 4]; const trippled = numbers.flatMap(number => {   return [number, 2 * number, 3 * number]; }); console.log(trippled); // logs [1, 2, 3, 4, 8, 12]
  事例地址:https://jsfiddle.net/dmitri_pavlutin/k7p2x1ar/  3: 总结
  如果你想把一个数组映射到一个新的数组中,同时又能控制你想在新的映射数组中添加多少项,那么  array.flatMap()  方法就是一个好办法。
  array.flatMap(callback)  的回调函数被调用,有3个参数:当前迭代的项、索引和原始数组。然后,从回调函数返回的数组在1 层深处被扁平化,得到的项目被插入到所产生的映射数组中。
  ~完,我是刷碗智,新的一年我们一起洗刷刷!!!!!!
  作者:Dmitri Pavlutin 译者:前端小智 来源:dmitripavlutin 原文:https://dmitripavltin.com/javascrit-array-flatmap/

kirin985怎么样麒麟985是八核芯片组,具有一个主频为2。58GHz的单核ARMCortexA76三个主频为2。4GHz的ARMCortexA76内核和四个时钟频率较低的ARMCortexA55内Swift团队把Swift之父气跑了,网友Python之父仁慈独裁模式是王道梦晨发自凹非寺量子位公众号QbitAI苹果Swift语言LLVM编译器之父ChrisLattner的新动向,引起程序员圈关注。这位编译器大神现在与Swift核心团队分道扬镳彻底退出iPhone13Pro直降3780?运营商合约机再流行,网友有多少人买?可能00后的朋友没听说过合约机这个词,但听过定制机这个字眼。实际上,定制机就是合约机,即通讯运营商(比如移动联通电信)与手机生产商合伙定制的合法手机。按照以往的规矩,用户使用合约机开启未来电竞新体验!联想拯救者发布Y系列游戏本专业游戏平板科技圈De那点事报道3月1日消息,昨晚联想召开拯救者集结2022拯救者生态春季新品发布会,正式发布了拯救者Y90电竞手机拯救者Y700游戏平板拯救者Y9000P2022拯救者Y7036氪独家强数字化供应链管理与规模化非标能力,爱阳光打造企业数字化采购服务生态36氪近日获悉,阳光印网2021年内已完成D轮融资,融资金额为5亿,近日公司宣布品牌升级成爱阳光。爱阳光成立于2011年,为企业提供多品类的定制品数字化采购服务。从客户端开始,爱阳企业网络安全高防护大存储服务器选择666IDC业务安全互联网数据存储硬抗服务器联系TEL一八六五零四九七七八三扣扣六六六二八五五七做优质的解答提供很稳定的服务器资源中小企业提高网络安全的五种方式?据外媒报道,绝大多数网络罪犯的亚马逊平台两个链接月利润超10万,细分市场不容小觑2022开年以来,多家跨境公司发布2021年业绩预告,多数公司在营收方面都呈现出了满意的答卷,反观利润却远不及预期。大卖尚且如此,在价格战如此激烈的情况下,不少中小卖家的利润更是微华为5G工程师家里有男孩想找技术好工作的请联系我!华为5G工程师要求男生,年龄1832周岁,中专及以上学历,专业不限学习周期初级21天,中级75天,学完即安置就业(联通移动电信三方服务公司就业,个人收款码不得经营,线下收单聚合风云乍起3月1日开始,个人收款码不能用于经营,微信和支付宝都发布了声明,对于商户的收款方式进行了调整。个人收款码只能用于个人之间,不能用于经营性收款。这次调整是根据央行去年10月发布的关于IDC2022年全球AI市场规模达到4328亿美元增长近20财经网科技3月1日讯,据新浪科技消息,根据IDC最新发布数据,全球人工智能收入预计到2022年同比增长19。6,达到4328亿美元,包括软件硬件和服务。预计2023年将突破5000元宇宙到底是什么?准确地说,元宇宙不是一个新的概念,它更像是一个经典概念的重生,1992年,美国著名科幻大师尼尔斯蒂芬森在其小说雪崩中这样描述元宇宙戴上耳机和目镜,找到连接终端,就能够以虚拟分身的方
4999并不贵!小米MIX4预约量突破52万自小米MIX4发布以来就有不少的消息称其是最强机皇,这不,该机自预约以来就屡破新高,京东商城显示,小米MIX4预约量突破了52万,再创新高,该机起售价4999元。此前小米MIX4曾嫌弃小米MIX4太贵?红米K40至尊版即将登场超便宜骁龙888Plus?在小米MIX4发布后不少米粉都认为今年小米已经不会再发布新机了,毕竟小米11系列已经有三款,而最顶级的机皇新款MIX手机也已经发布。那么事实真的是这样的吗?很明显并不是,因为就在小南都曝光后小米应用商店下架相关无版号游戏,问题应用仍不少上架推广的好游戏却无版号米盟应用频现广告轰炸诱导下载游戏过度索权却通过小米安全检测搜索孩子幼儿却频现社交游戏广告南都大数据研究院连日来针对手机应用商店不合规现象展开系列调查,8月14K分辨率2亿像素,小米12Ultra曝光日前有媒体曝出明年即将上市的小米12Ultra概念图其实在小米11Ultra上市的时候很多人都把它称为目前国产最顶级的机型,同时多项配置达到国产配置的天花板,其次11。12寸超大传小米12规格被曝光,首发骁龙898处理器,有望冲击世界第一随着小米MIX4的发布,现在很多米粉已经开始把眼光转向小米12,这款神秘旗舰也正在逐步浮出水面,不出意外的话将会在今年底登场。无独有偶,按照数码博主的爆料,小米12规格被曝光,首发3000元内性价比手机机型推荐1realme真我GT大师探索版,搭载高通骁龙870处理器。打孔曲面屏设计,屏幕素质高。4500mah电池,65w快充。由著名设计大师深泽直人操刀设计。后置5000w索尼Imx76小米MIX4先别入手,CPU全面屏优势很明显,这些缺点也不容忽视近日,全面屏手机逐步开始进入用户的视野,首先是中端机性价比机型中兴Axon30,接着是旗舰机型小米MIX4,都让各位消费者对于全面屏有了直观的感受。尤其是小米MIX4,第三代屏下镜iPhone13将支持5G毫米波科技快讯科技Apple的iPhone13系列即将问世,现在新信息显示其最容易被忽视的功能之一5G毫米波兼容,可能会产生最大的影响。Digitimes在其独家报道中称,苹果对其iPhReddit获富达领投F轮7亿美元!拟扩大加密社群代币计划上市素有美国PTT之称Reddit证实已完成4。1亿美元F轮融资,由富达集团领投,这使Reddit的估值来到100亿美元,朝着上市跨出美国之路更进一步。官方同时也表示正在研拟如何扩大积Win10电脑怎么阻止所有的广告弹窗?使用Win10系统后,已安装的软件具有更多软件,该软件不可避免地由广告弹出窗口遇到。有时我再次关闭,如何做到,Win10如何停止所有弹出的广告?以下小编将教授每个人的Win10删除Win10电脑怎么关闭软件的弹窗广告?在使用计算机系统之后,越来越多的软件可能会意外捆绑一些广告插件,并且计算机容易出于广告弹出窗口。一些网友想知道Win10如何关闭软件广告弹出窗口,拦截广告弹出窗口。以下小型系列教导