sortBy: var collection = ['John', 'Petteri', 'Antti', 'Joonas', 'Zhentian']; var sorted = _.sortBy(collection); //[ 'Antti', 'John', 'Joonas', 'Petteri', 'Zhentian' ] var collection = ['John', 'Petteri', 'Antti', 'Joonas', 'Zhentian']; var sorted = _…
This lesson shows how to refactor your old loops into using a simpler and more powerful lodash-style. We will start by looking at how many people traditionally write JavaScript for loops and then talk about the alternate style and benefits that Lodas…
Link: https://lodash.com/docs#memoize Example: .service('UserPresenter', function(UserConstants){ var typeFromId = _.memoize(function(typeId){ var obj = _.findWhere(UserConstants.types, { value: typeId}); return obj ? obj.display : ''; }); return { f…
在数据操作时,Lodash 就是我的弹药库,不管遇到多复杂的数据结构都能用一些函数轻松拆解. ES6 中也新增了诸多新的对象函数,一些简单的项目中 ES6 就足够使用了,但还是会有例外的情况引用了少数的 Lodash 函数.一个完整的 Lodash 库,即使是压缩后,现最新版本也有 71k的体积.不能为了吃一口饭而买下一个饭店啊. 针对这个问题,其实已经有很多可选方案了. 函数模块 Lodash 中的每个函数在 NPM 都有一个单独的发布模块. NPM: results for 'lodash'…
1   _.compact用法   _.compact([0, 1, false, 2, '', 3,'mm']); var test = _.compact([-1,0, 1, false, 2, '', 3,'jj']); console.log(test); ----1,1,2,3,jj//输出 没有 0 false 空格 2_.different用法 var test = _.difference([1, 2, 3, 4, 5], [5, 2, 10]); console.log(tes…
Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库作为自己的工具库.除了可以在浏览器环境使用,Underscore.js还可以用于Node.js. Underscore.js定义了一个下划线(_)对象,函数库的所有方法都属于这个对象.这些方法大致上可以分成:集合(collection).数组(array).函数(function).对象(object)和…
我已经从事过好多年的SPA开发工作,我发现很多的程序猿都从来不往 bundle.js 文件的体积上动脑筋,这让我有点懵逼. “安心洗路,等俺把代码混淆压缩后就一切666了”,若是有人这么说,我会翻白眼. 其实当我们压缩 bundle.js 的时候,我们可能会凭空折腾出一个庞大的应用,导致其加载时间抑或在移动端的连接时间变慢.那么问题就来了——我们是否有办法给 bundle 显著地瘦瘦身? 其实一切都很简单——使用相对文件路径即可.我们来俩个示例看看它们的区别. 示例1 首先,我们使用ES6的解构…
Underscore提供的100多个函数,主要涉及对Collection.Object.Array.Function的操作: Collections(集合) each, map, reduce, reduceRight, find, filter, reject, all, any, include, invoke,pluck, max, min, sortBy, groupBy, sortedIndex, shuffle, toArray, size Arrays(数组) first, ini…
Webpack是一个现代js应用的模块打包机.如果一个文件依赖另一个文件,webpack认为这就存在一个依赖关系.不管另一个文件是什么内容,image,css或js都被当作一个模块.Webpack从entry points开始构建依赖关系图,将应用所需要的所有模块经过处理成浏览器可识别的格式,再打包成一批(个)文件,将来发送给浏览器. 使用步骤: 1.全局安装webpack npm install -g webpack 如果没有package.json,使用CLI创建:npm init 2.项目…
Currying,中文多翻译为柯里化,感觉这个音译还没有达到类似 Humor 之于幽默的传神地步,后面直接使用 Currying. 什么是 Currying Currying 是这么一种机制,它将一个接收多个参数的函数,拆分成多个接收单个参数的函数. 考察下面的代码: function add (a, b) { return a + b; } add(3, 4); // returns 7 add 接收两个参数 a,b,并返回它们的和 a+b. 经过 curry 化处理后,函数成了如下形式: f…