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 相关文章推荐
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
jquery选择器、属性设置用法经验总结
Sep 08 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
js检测判断日期大于多少天的方法
May 04 Javascript
javascript-解决mongoose数据查询的异步操作
Dec 22 Javascript
Bootstrap select实现下拉框多选效果
Dec 23 Javascript
JavaScript省市级联下拉菜单实例
Feb 14 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
Feb 18 Javascript
js 函数式编程学习笔记
Mar 25 Javascript
JS实现判断有效的数独算法示例
Feb 25 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
Jun 14 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 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 输出简单动态WAP页面
2009/06/09 PHP
php生成二维码
2015/08/10 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
javascript 实现map集合
2015/04/03 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
教你安装python Django(图文)
2013/11/04 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
python如何查看网页代码
2020/06/07 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
请说出几个常用的异常类
2013/01/08 面试题
Java里面如何创建一个内部类的实例
2015/01/19 面试题
乔丹名人堂演讲稿
2014/05/24 职场文书
主持人开幕词
2015/01/29 职场文书
毕业生个人总结
2015/02/28 职场文书
会计专业求职信范文
2015/03/19 职场文书
一般纳税人申请报告
2015/05/18 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
德生2P3收音机开箱评测
2022/04/30 无线电
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python