主页 > 专属服务器 > > 正文

云服务器_网上商城网站建设_安全稳定

来源:胜利云 发布时间:2021-06-11 13:12 标签:服务器安全网站建设稳定网上商城
浏览:

在这篇文章中,我想到了JavaScript中的一个特定函数定义,以及它如何在同等程度上体现美观和实用性。

周五晚上,我在推特上写道:

这是我在漫不经心地阅读一些源代码时遇到的,我觉得它相当漂亮。我对这条微博有一些反应。在其中一篇文章中,斯里坎特·佩里要求解释,然后朱莉·普卢默建议我在本周一上午的思想系列文章中以帖子的形式来做。这是个好主意,因为我已经在去woodstore的路上了。

woodstore,我在那里阅读和思考东西(享受一两杯啤酒)。

上下文

所讨论的源代码是一个实用程序,可重用数据.js, 基础存储库SAP/cloud sample spaceflight的一部分,移动物联网卡,其中包含今年SAP TechEd应用程序编程模型会议的基础核心数据和服务数据模型(请参阅"SAP云平台的应用程序编程模型-从这里开始"),由Christian Georgi和我的语言漫游合作伙伴Christian编写我为什么要读这个?好吧,当然是出于好奇和想多学点东西。我听说程序员只花10%的时间写代码,90%的时间读代码。这听起来很极端,大数据在线,但我可以想象在某些情况下是真的。我猜这不仅包括在扩展或修改代码之前阅读代码以了解它的功能,还包括为了乐趣而阅读代码,以了解其他人是如何编写的。

我记得我在2000年初为我的第一本书《编程喋喋不休》做过研究。我在当地的咖啡店花了很多时间阅读该书的源代码Jabber(现在的XMPP)协议的参考实现–jabberd源代码,由Jeremie Miller和其他人用C编写。我从中学到了很多,我喜欢时不时地阅读别人的代码——尤其是看到每个作者的角色是如何温和地但不可避免地渗入代码中的。为了添加一点上下文,下面是一行代码,并附带注释:

在JavaScript中,Array是一个用于表示列表的全局对象,并且有许多对Array对象实例进行操作的内置函数或方法。

例如,您可以创建一个数组,然后使用Array对象的join()函数,如这是:

(这里的代码示例来自Chrome控制台会话,使用ES6)。

Array对象的另一个内置函数是push(),这是我脑海中作为一个家族考虑的四个函数之一,因为它们做的事情非常相似:

函数shift()和unshift()在数组的前面操作,分别删除或添加元素。函数pop()和push()分别在数组的末尾操作,删除或添加元素。

还有其他函数用于在数组的其他位置操作元素,例如splice()和slice(),淘客购物,但我们现在要集中讨论的是push()及其同级unshift()。两者都向数组中添加一个或多个元素。在这两种情况下,返回的都是新数组的长度。例如:

这不是不合理的,但它也没有你想象的那么有用。

实用性

在许多情况下,你会想创建一些东西-一个数组,一个地图,另一个更高级别的对象,并操纵它。很多人觉得很自然的一种方法是使用方法链接,这实际上就像说:"做这个,然后那个,然后另一个"。

这在UI5中很常见,例如标准控件,比如sap.m库中的Button控件有方法,其中许多方法返回它们正在操作的Button实例,显式地允许方法链接(参见示例attachPress)。因此,我们可以这样结束,四个方法被"链接"在一起:

以类似的方式,您可能希望创建一个元素列表,通过某种方式重新排列它,在它的末尾添加一些内容,然后映射到每个最终的元素集合,以得到您真正需要的内容。例如:

您希望得到:

但是,最终得到:

这是因为push()函数返回数组(4)的新长度,而不是数组本身。不理想。

更糟糕的是,使用更高级别的函数(如reduce())以及基于ES6的较短的arrow函数样式的函数定义会变得很麻烦。对于arrow函数,函数定义本身要短得多,并且(没有花括号)会隐式返回该函数执行后计算的结果。

如果您不熟悉使用reduce()和利用新的ES6 arrow函数样式,下面是一个精心设计的示例:

这里,我们使用乘法一个数字列表,并利用传递给reduce的函数定义:

隐式返回表达式a*x的结果,将其输入下一个元素迭代,直到元素列表用尽为止。

换句话说,如果您想使用数组的push()函数作为reduce()场景中传递的函数定义,您不能,或者至少,它的计算结果(数组的新长度)几乎肯定不是您希望输入到下一个迭代中的值—您想要新的(修改过的)数组*.

*您中的热心读者会猜到我现在正在完全忽略push()正在改变数组这一事实有点不舒服,这通常是一件坏事(tm)–但我是故意忽略它的,因为这是另一个时代的另一个主题。

如果你进一步阅读可重用数据.js程序,您将看到在第73行中有一个reduce()函数被用来收集表名:

这个

的用法不是来自Array对象的标准push()函数。相反,这是我们之前定义的push()函数,这篇文章的主题:

现在我们了解了它的使用背景,以及为什么标准push()函数不好,让我们深入了解这个定义,看看它是如何工作的,以及为什么可以使用它。

发表评论
验证码: 点击我更换图片

注:网友评论仅供其表达个人看法,并不代表本站立场。

热门文章

  • 亚马逊云_海报cdn_优惠券
    <strong>亚马逊云_海报cdn_优惠券</strong>

    亚马逊云_海报cdn_优惠券

    消费者在哪里?这不是医疗保健领域的"捉迷藏"游戏,而是建立一个全面运转的医疗保健系统所需要的关键缺失要素。让消费者参与进来——作为一个消费...

  • 云解析_svn服务器安装_限时特惠
    <strong>云解析_svn服务器安装_限时特惠</strong>

    云解析_svn服务器安装_限时特惠

    集成/docker/梅索斯/marathonapachemesos是一个用于调度和管理分布式应用程序的开源集群管理器。Mesos几乎就像整个集群是一个单一的集群一样分配CPU和RAM等资源...

  • 云服务器_阿里云服务器账号_哪家好
    <strong>云服务器_阿里云服务器账号_哪家好</strong>

    云服务器_阿里云服务器账号_哪家好

    技术支持副总裁Aileen Wyer和高级系统管理员Maruf Rahman最近与我们坐下来讨论我们的合作伙伴关系如何帮助CAN Capital的遗留备份基础设施现代化,以简化数据管...

  • 消息队列_折枝by困倚危楼百度云_新注册优
    <strong>消息队列_折枝by困倚危楼百度云_新注册优</strong>

    消息队列_折枝by困倚危楼百度云_新注册优

    今天,两位前行业分析师(现在是Veeam高管)讨论了塑造数据保护行业和IT格局的趋势:Jason Buffington@JBuff,前ESG数据保护首席分析师Dave Russell@BackupDave,Ga...

  • 中间件_服务器能干什么_超低折扣
    <strong>中间件_服务器能干什么_超低折扣</strong>

    中间件_服务器能干什么_超低折扣

    Nathan Sielaff,World Vision的系统工程师,负责备份、存储等。他致力于创建一个灵活和敏捷的IT环境,这样组织就不必担心底层基础设施,可以将精力集中在任...

云储存

更多 >
  • <strong>阿里云_cdn厂商_速度快</strong>
    阿里云_cdn厂商_速度快

    非常感谢SUSE的Bernd Schubert校对了博客。 第1部分:HANA在SLES 12 SP 3上使用SUSE HAE扩展HA的系统复制和自动故障切换–第1部分 第2部分:HANA在SLES 12 SP 3上使用S...

  • 香港服务器_分布式mysql数据库_评分榜
    香港服务器_分布式mysql数据库_评分榜

    当您开始使用SAP云平台提供的虚拟机时,您会注意到它带有一个默认操作系统,当前为SUSE Linux Enterprise Server 12 SP1,没有安装任何附加软件。 SAP不负责安装...

云储存服务器_百度云6_优惠券
云储存网站空间_什么是百度云_试用
云储存百度云_阿里云在哪里_速度快
云储存数据库_常见的消息中间件_12月免费
云储存网站空间_https服务器_超低折扣