chain,链条,用chain可以使我们的代码变得简单。以下面代码为例,找到三个人中年龄最小的人的名字和年龄。体会一下chain的好处。
如果不使用chain的话,就会是这样:
var stooges =
[{name: 'curly', age: 25}, {name: 'moe', age: 21}, {name: 'larry', age: 23}];
var a = _(stooges).sortBy(’age‘);
var b = _(a).map(function(stooge){ return stooge.name + ' is ' + stooge.age; }) //["moe is 21", "larry is 23", "curly is 25"]
var c = _(b).first() //moe is 21
这样会不会有点麻烦呢?你注意到没有,整个代码就像一条链一样,每个变量都是对上一个变量运用一个方法,这样重复进行。有没有简单点的方法不需要这样定义多个变量呢?当然有啦!
var stooges =
[{name: 'curly', age: 25}, {name: 'moe', age: 21}, {name: 'larry', age: 23}];
var youngest = _.chain(stooges)
.sortBy(’age‘)
.map(function(stooge){ return stooge.name + ' is ' + stooge.age; }) //["moe is 21", "larry is 23", "curly is 25"]
.first() //moe is 21
.value(); //chain结束的标志.
从上面的代码可以看出来,用上chain后,每次使用方法的时候不需要每次都重新定义一个变量。是不是很简洁好看呢?
分享到:
相关推荐
《Bayesian and Markov chain》文章中通过一系列示例介绍了如何使用PyMC来构建和分析模型。首先,通过定义随机变量和确定性变量来构建模型结构;然后,利用MCMC算法对模型进行拟合,从而得到参数的后验分布;最后,...
在本篇文章中,我们将深入探讨Commons Chain的基本概念、主要组件以及如何使用它来构建应用程序。 1. **基本概念** - **Chain**:Chain 是一系列Command的容器,它们按照预定义的顺序执行。每个Chain可以有多个...
3. **使用原生方法**:JavaScript的原生方法通常经过优化,性能优于自定义实现。 4. **异步处理**:对于耗时操作,考虑使用异步处理,避免阻塞主线程。 总的来说,`bench-chain`是前端开发者手中的一把利器,它能...
在这个主题下,我们将深入探讨"script-chain"的特点、用法以及其在前端开发中的实际应用。 首先,"script-chain"这个名字暗示了它可能是一种基于链式调用的脚本管理工具。在JavaScript中,链式调用是一种常见的编程...
在"chain-able"库中,开发者可以定义一系列可以链接在一起的方法,每个方法执行完毕后返回对象本身,从而实现链式调用。这样的设计让代码的结构更加清晰,降低了复杂性。例如,我们可能有一个数据处理的链式流程,...
由于版本发展原因,已经提供了新的 Quick-Start 样例代码,因此已停止维护此仓库代码。 新的 Quick-Start 样例代码位于:上手JD Chain开发。
通常,我们建议使用代替,但是由于依赖于此,因此无法更改。 安装 yarn add config-chain # npm users npm install --save config-chain 用法 const cc = require ( 'config-chain' ) ; console . log ( cc . env ...
用法 <?php require __DIR__ . '/vendor/autoload.php' ; use TaskChain \ TaskChain ; use TaskChain \ TaskInterface ; $ chain = new TaskChain (); /** * Class TaskAdd */ class TaskAdd implements ...
6. **Markov Chain Monte Carlo (MCMC)**:这是一种使用马尔科夫链来抽样高维空间的方法,常用于统计推断,如贝叶斯统计中的后验分布采样。 以上就是对马尔科夫链的基本介绍,具体到“░¿Ñiñ╥├∞- Markov ...
在计算机安全领域,Chain of Trust 是一种建立从最终实体到根证书的每个硬件和软件组件的验证机制,目的是确保只有可信的软件和硬件能够被使用,同时保持系统的灵活性。这个概念在嵌入式系统,尤其是自动驾驶和无人...
使用要求该库需要TS 2.8+版本才能使用安装npm install optional-chain用法 import { optional } from "optional-chain" ;type User = { name ?: { first : string }}const user : User = getUser ( ) ; // { name: ...
链码(Chain code)是一种在图像处理和计算机视觉领域中广泛使用的编码技术,它通过跟踪边界像素来表示图像的形状和轮廓。在这个特定的主题“Chain code _chain_Modified_”中,我们关注的是对原始链码编码方法的一...
关键链项目管理(Critical Chain Project Management,CCPM)是一种创新的项目管理方法,它由埃利亚胡·戈德拉特博士提出,最初用于生产运作的优化,后经改进应用到项目管理中。CCPM的核心思想是把项目管理的焦点从...
这个过程可以使用迭代或递归方法实现: - **迭代**:从两个链表的头节点开始比较,较小的元素被添加到结果链表中,直到其中一个链表为空。然后,将非空链表作为结果链表的剩余部分。 - **递归**:如果一个链表为空...
使用 Kue 我发现我系统中的大多数新作业都是在对其他一些作业完成的React后创建的。 在实现了一些辅助函数之后,它变得更好了一点,但它仍然在管理作业排序的代码中留下了很多重复的部分。 所以我走得更远,使正在...
4. 缓存管理:LRU(最近最少使用)缓存策略中,常用链表记录缓存项的使用情况。 总结,单链表作为一种基本的数据结构,其灵活性和动态性使得它在解决各种问题时都能发挥重要作用。了解和熟练掌握单链表的原理和操作...
### 提升链(Boosting Chain)在目标检测中的应用 #### 概述 提升链(Boosting Chain)是一种被提出用于目标检测问题的通用分类框架。该方法的主要贡献在于引入了一个“链式”结构,旨在将历史知识整合到连续的...
在排查以上问题时,建议使用分步诊断的方法,先从最简单的硬件检查开始,逐步深入到固件和软件层面。对于开发过程中遇到的这类问题,及时记录并总结解决方案,可以提高以后的开发效率,避免重复的错误。此外,理解...
本文实例分析了javascript作用域链(Scope Chain)用法。分享给大家供大家参考,具体如下: 关于js的作用域链,早有耳闻,也曾看过几篇介绍性的博文,但一直都理解的模棱两可。近日又精心翻看了一下《悟透Javascript》...
标题:“Daisy Chain AVB”(菊花链AVB)涉及到的是一种技术架构的应用,特别是在使用AVB(Audio Video Bridging,音频视频桥接)技术通过以太网传输音频和其他实时内容时,如何利用菊花链方式连接设备。这种方法...