当前位置: 首页 > news >正文

揭阳 网站建设/视频号怎么推广流量

揭阳 网站建设,视频号怎么推广流量,怎么把网站做成手机网站,专业制作网站公司前言你还在为JavaScript中的数据转换、匹配、查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很大一步了。然而今天我希望你能更进…

5268f80b9b1e01f982625ef6fac83ca1.png

前言

你还在为JavaScript中的数据转换、匹配、查找等烦恼吗?一堆看似简单的foreach,却冗长无趣,可仍还在不停的repeat it!也许你已经用上了Underscore.js,不错,你已经进步很大一步了。然而今天我希望你能更进一步,利用lodash替换掉Underscore。

lodash一开始是Underscore.js库的一个fork,因为和其他(Underscore.js的)贡献者意见相左。John-David Dalton的最初目标,是提供更多“一致的跨浏览器行为……,并改善性能”。之后,该项目在现有成功的基础之上取得了更大的成果。最近lodash也发布了3.5版,成为了npm包仓库中依赖最多的库。它正在摆脱屌丝身份,成为开发者的常规的选择之一。

现在我们所熟知的很多开源项目都已经使用或者转到了lodash阵营之上。比如JavaScript转译器Babel、博客平台Ghost,和项目脚手架工具Yeoman。特别Ghost是从Underscore迁移到了lodash,Ghost的创始人John O'Nolan对于此曾评价到:“这是一个非常明智的选择,它几乎完全是由我们开源开发社区推动的。我们发现lodash包含更多的功能,更好的性能、恰到好处地使用了semver,并且在Node.js社区(以及其他依赖)中越来越抢眼“。

lodash演练

lodash主要使用了延迟计算,使得lodash其性能远远超过Underscore。在lodash中延迟计算意味着在我们的链式方法在显示或隐式的value()调用之前是不会执行的。由于这种执行的延后,因此lodash可以进行shortcut fusion这样的优化,通过合并链式iteratee大大降低迭代的次数。从而大大提供其执行性能。

百说不如一练,下面我们以用户信息为例:

var users = [

{ 'user': 'barney', 'age': 36 },

{ 'user': 'fred', 'age': 40 },

{ 'user': 'pebbles', 'age': 18 }

];

1.获取所有用户名字,并以”,“分割

var names = _.chain(users)

.map(function(user){

return user.user;

})

.join(" , ")

.value();

console.log(names);

个人比较喜欢lodash延迟计算的现实value,以及JavaScript的函数式风格。在这里首先将users对象包装成为lodash对象,再map获取所有用户的名称,并最后利用join将用户名称以”,“连接在一起。注意这里只是一串方法链,如果你没有显样的调用value方法,使其立即执行的化,你将会得到如下的LodashWrapper延迟表达式:

LodashWrapper {__wrapped__: LazyWrapper, __actions__: Array[1], __chain__: true, constructor: function, after: function…}

因为延迟表达式的存在,因此我们可以多次增加方法链,但这并不会被执行,所以不会存在性能的问题,最后知道我们需要使用的时候,使用value显式立即执行即可。

2. 获取最年轻的用户

var youngest = _.chain(users)

.min(function(user){

return user.age;

})

.value();

console.log(youngest);

这里利用了lodash提供的min函数可以轻易的解决。

在这里博主还希望用另外一个方式解释lodash方法链的优化,上面的方法可以等价为下面的方式,以age排序的第一个user:

var youngest2 = _.chain(users)

.sortBy("age")

.map(function(user){

console.log("map", user);

return user;

})

.first()

.value();

console.log(youngest2);

在这里博主多加了一个map作为log输出,如果你执行这行代码的时候,你会惊奇的看见这里只会有一个user的输出,这点可以证明在立即执行的时候lodash为我们的方法链做了可靠的优化;如果我们去掉first函数你则会看见有3个user对象的输出。

3. 获取最年长的用户

var oldest = _.chain(users)

.max(function(user){

return user.age;

})

.value();

console.log(oldest );

这里则使用lodash的max函数。

4. 用户数组到用户Map的转换

在开发中我们经常会有把一堆素组形式的数据转换为Object形式的数组,便于根据属性key值查找,下面将以user对象来演示:

var userObj = _.chain(users)

.map(function(user){

return [user.user, user.age];

})

.zipObject()

.value();

console.log(userObj);

利用lodash首先将user数组map为[key, value]的数组集合,最后利用zipObject将结果转换为Object对象,zipObject会利用结果集的第一项作为key,第二项作为value生产Object。

结尾

我们在这里展示知识lodash中很小一部分的API,正如随笔开始所说:lodash是为了提供更多“一致的跨浏览器行为……,并改善性能”API。所有的lodash API你可以在这里https://lodash.com/docs#matches查找。

本文的所演示的demo,你也可以在jsbin http://jsbin.com/xocixubaru/1/edit?html,js,output演示。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

http://www.lbrq.cn/news/1357183.html

相关文章:

  • 怎么建网站手机版/北京seo顾问外包
  • 廊坊市做网站/什么是营销渠道
  • 做网站数据库怎么整/西安网站建设维护
  • 网站开发个人简介范文/域名解析ip
  • 网站开发服务承诺书/推广员是做什么的
  • 武汉新闻网/网站首页的优化
  • asp网站开发人员招聘/如何申请一个网站域名
  • 大访问量的网站怎么做优化/网站接广告平台
  • 网站建设基本流程心得/网络营销的基本流程
  • 深圳品牌网站设计推广/网站设计与网页制作
  • 平台网站怎么做的好/b站怎么推广
  • phpnow wordpress/网络推广优化
  • 史上最强大的搜索神器/seo整站优化多少钱
  • 做相册网站/网络营销的手段有哪些
  • 目前最好的免费网站/哈尔滨seo推广优化
  • 聊城冠县网站建设/三叶草gw9356
  • 化州网站建设/网络营销特点
  • 深圳网站建设 贴吧/百度收录快速提交
  • 海口模板建站平台/真实有效的优化排名
  • 重庆市建设工程造价站/网络推广怎么找客户资源
  • 网站建设公司yu/电商网站卷烟订货流程
  • 辽宁做网站和优化哪家好/免费线上培训平台
  • 高端网站制作价格/营销型网站建设企业
  • 自己做的网站只能用谷歌浏览器打开/怎么设置自己的网站
  • 免费的源码分享网站/google下载官网
  • 做芯片代理哪个网站推广/百度竞价推广的技巧
  • 社区微网站建设需求分析/电脑优化
  • 电商的网站/网店营销策划方案范文
  • 苏州做网站公司/杭州推广公司排名
  • 建设检测人员证书查询网站/网络运营培训班
  • AI学习之大话transformer架构
  • 海康威视相机,MVS连接成功,但无图像怎么办?
  • 【Git学习】入门与基础
  • python开发环境安装多系统完整版
  • Spring-rabbit使用实战六
  • C语言线程同步详解(互斥锁、信号量、条件变量和读写锁)