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类
Sep 08 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
jquery 提交值不为空的元素示例代码
May 10 Javascript
javascript-简单的计算器实现步骤分解(附图)
May 30 Javascript
JQuery之focus函数使用介绍
Aug 20 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
jQuery实现防止提交按钮被双击的方法
Mar 24 Javascript
简单实现js浮动框
Dec 13 Javascript
JS搜狐面试题分析
Dec 16 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
Javascript中async与await的捕捉错误详解
Mar 03 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批量删除数据
2007/01/18 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
python实现三壶谜题的示例详解
2020/11/02 Python
八一建军节部队活动方案
2014/02/04 职场文书
仓库主管岗位职责
2014/03/02 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
会计专业求职信范文
2015/03/19 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技