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 相关文章推荐
获取当前网页document.url location.href区别总结
May 10 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
Jquery实现由下向上展开效果的例子
Dec 08 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
Feb 14 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
JS深度拷贝Object Array实例分析
Mar 31 Javascript
JavaScript中原型链存在的问题解析
Sep 25 Javascript
JavaScript中setTimeout的那些事儿
Nov 14 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
Nov 29 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 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
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
Python isinstance函数介绍
2015/04/14 Python
Python中表示字符串的三种方法
2017/09/06 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
python制作简单五子棋游戏
2019/06/18 Python
python3.6编写的单元测试示例
2019/08/17 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
会计应聘求职信范文
2013/12/17 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
员工安全责任协议书
2016/03/22 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书