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 相关文章推荐
改进UCHOME的记录发布,增强可访问性用户体验
Jan 17 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
Mar 31 Javascript
Iscrool下拉刷新功能实现方法(推荐)
Jun 26 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 Javascript
微信小程序位置授权处理方法
Jun 13 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 Javascript
Electron实现应用打包、自动升级过程解析
Jul 07 Javascript
如何在Vue.JS中使用图标组件
Aug 04 Javascript
vue使用element-ui实现表单验证
Dec 13 Vue.js
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
神族 PROTOSS 概述
2020/03/14 星际争霸
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
js创建对象的方式总结
2015/01/10 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
python3爬取数据至mysql的方法
2018/06/26 Python
Python字典dict常用方法函数实例
2020/11/09 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
数控技术专科生自我评价
2014/01/08 职场文书
家长会演讲稿范文
2014/01/10 职场文书
植树造林的宣传标语
2014/06/23 职场文书
田径运动会通讯稿
2014/09/13 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书