Underscore之Array_动力节点Java学院整理


Posted in Javascript onJuly 10, 2017

underscore为Array提供了许多工具类方法,可以更方便快捷地操作Array

first / last

顾名思义,这两个函数分别取第一个和最后一个元素:

'use strict';
var arr = [2, 4, 6, 8];
_.first(arr); // 2
_.last(arr); // 8

flatten

flatten()接收一个Array,无论这个Array里面嵌套了多少个Arrayflatten()最后都把它们变成一个一维数组:

'use strict';

_.flatten([1, [2], [3, [[4], [5]]]]); // [1, 2, 3, 4, 5]

zip / unzip

zip()把两个或多个数组的所有元素按索引对齐,然后按索引合并成新数组。例如,你有一个Array保存了名字,另一个Array保存了分数,现在,要把名字和分数给对上,用zip()轻松实现:

'use strict';

var names = ['Adam', 'Lisa', 'Bart'];
var scores = [85, 92, 59];
_.zip(names, scores);
// [['Adam', 85], ['Lisa', 92], ['Bart', 59]]

unzip()则是反过来:

'use strict';
var namesAndScores = [['Adam', 85], ['Lisa', 92], ['Bart', 59]];
_.unzip(namesAndScores);
// [['Adam', 'Lisa', 'Bart'], [85, 92, 59]]

object

有时候你会想,与其用zip(),为啥不把名字和分数直接对应成Object呢?别急,object()函数就是干这个的:

'use strict';

var names = ['Adam', 'Lisa', 'Bart'];
var scores = [85, 92, 59];
_.object(names, scores);
// {Adam: 85, Lisa: 92, Bart: 59}

注意_.object()是一个函数,不是JavaScript的Object对象。

range

range()让你快速生成一个序列,不再需要用for循环实现了:

'use strict';

// 从0开始小于10:
_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

// 从1开始小于11:
_.range(1, 11); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

// 从0开始小于30,步长5:
_.range(0, 30, 5); // [0, 5, 10, 15, 20, 25]

// 从0开始大于-10,步长-1:
_.range(0, -10, -1); // [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

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

Javascript 相关文章推荐
突发奇想的一个jquery插件
Nov 19 Javascript
JS实现点击按钮自动增加一个单元格的方法
Mar 09 Javascript
JavaScript知识点整理
Dec 09 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
简单谈谈JS中的正则表达式
Sep 11 Javascript
深入剖析Node.js cluster模块
May 23 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
vue百度地图 + 定位的详解
May 13 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
原生js实现抽奖小游戏
Jun 27 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 #Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 #Javascript
Angular.js组件之input mask对input输入进行格式化详解
Jul 10 #Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 #Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 #Javascript
Vue实现virtual-dom的原理简析
Jul 10 #Javascript
Vue2路由动画效果的实现代码
Jul 10 #Javascript
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
在JavaScript中调用php程序
2009/03/09 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python3实现生成随机密码的方法
2014/08/23 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
工作说明书范文
2014/05/07 职场文书
应届生求职信范文
2014/06/30 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
异地恋情人节寄语
2015/02/28 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
代理词怎么写
2015/05/25 职场文书
公司借条范本
2015/05/25 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
运动会班级前导词
2015/07/20 职场文书