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 相关文章推荐
几个比较实用的JavaScript 测试及效验工具
Apr 18 Javascript
javascript针对DOM的应用实例(一)
Apr 15 Javascript
解析javascript 实用函数的使用详解
May 10 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
Oct 15 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
Apr 26 Javascript
JavaScript运动框架 链式运动到完美运动(五)
May 18 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
JavaScript数组去重算法实例小结
May 07 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 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
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
JS异步处理的进化史深入讲解
2019/08/25 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
python对DICOM图像的读取方法详解
2017/07/17 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python语言中with as的用法使用详解
2018/02/23 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
解决python线程卡死的问题
2019/02/18 Python
python支付宝支付示例详解
2019/08/22 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
python 实现客户端与服务端的通信
2020/12/23 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
暑假实习求职信范文
2013/09/22 职场文书
运动会稿件100字
2014/09/24 职场文书
公司捐书倡议书
2015/04/27 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android