在学习过程中是需要用到underscore.js的,所以需要从头开始认识,了解,掌握underscore.js的用法。
underscore里有许多函数,主要涉及collection、object、array、function的一些操作。
下面是关于collection的一些函数。从官网总结一下最近用到的函数。
each
语法
_.each(list, iteratee, [context])
描述:
遍历list中的所有元素,按顺序用遍历输出每个元素。如果传递了context参数,则把iteratee绑定到 context对象上。每次调用iteratee都会传递三个参数:(element, index, list)。如果list是个JavaScript对象,iteratee的参数是(value, key, list))。返回list以方便链式调用。
例:
_.each([1, 2, 3], function(num){console.log(num)}); _.each({one: 1, two: 2, three: 3}, function(value,key){console.log(key) console.log(value)});
输出:
1 2 3 one: 1, two: 2, three: 3
map
语法:
_.map(list, iteratee, [context])
描述:
通过转换函数(iteratee迭代器)映射列表中的每个值产生价值的新数组。iteratee传递三个参数:value,然后是迭代 index(或 key 愚人码头注:如果list是个JavaScript对象是,这个参数就是key),最后一个是引用指向整个list。 map 和 each的区别就是map可以接受返回值
例:
_.map([1, 2, 3], function(num){ return num +1; }); _.map({one: 1, two: 2, three: 3}, function(num, key){ return num +3; }); _.map([[1, 2], [3, 4]], _.first); _.map([1,2,3],function(num){if(num > 2){return num }}); 输出:
[2, 3, 4] [4, 5, 6] [1, 3] [undefined,2,3]
我想通过第四个例子也可以稍微看出map和each的一点区别了,map是对list的值操作返回相同长度的数组,each是对list元素进行迭代,可以改变list的长度,没有返回值。
filter
语法:
_.filter(list, predicate, [context])
描述:
遍历list中的每个值,返回包含所有通过predicate真值检测的元素值。(愚人码头注:如果存在原生filter方法,则用原生的filter方法。)
例:
var arr = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
输出:
[2, 4, 6]
fiiter也是当迭代list之后只会返回出符合条件的元素,list的长度并不会发生改变。
这就是最近常用到的一些迭代的函数。要分清操作的对象是什么。
相关推荐
underscore源码学习计划
underscore.js源码,适合初始化学习javascript,强烈推荐
Underscore.js源码学习 执照 麻省理工学院
Underscore.js 前言 JavaScript的进阶之路少不了看一些第三方类库的源码,而原始码中质量高又容易上手的要数下划线了。希望能通过这一系列的解读将自己JavaScript水平真正提升一个档次。 如果你觉得我的解读还可以,...
选择做underscore.js原始码分析的原因 了解通用流行库的封装方式,以及有一些优化提示 学习编写工具函数的正确姿势 想知道underscore与函数式编程有什么关系 摸索原始码阅读的正确姿势 lodash是underscore的超集,...
欢迎来到GitHub Pages
:eyes: 下划线分析 来源
javascript lib 很值得新手学习呀,对于网络数据流的学习的确是一个很好的案例,而且界面设计也不错
underscore.js是一个轻量,实用,兼容低版本浏览器JavaScript工具库和支持JavaScript多环境下使用。 ###主要 ###为什么要做原始码剖析 最近这段时间也是在重新沉淀自己的技术栈和学习新的技术,虽然在js编码风格上...
Underscore.js 修改 为了学习javascript,我在这里重写了Underscore.js中的一些方法。
源代码免费提供给大家,希望大家一起交流学习。
预览堆: HTML-CSS-Js-Chart.js-Underscore.js-Jquery-Bootstrap-Python-Flask图标集:实施细节数据集该数据集包含约400万个Amazon客户评论(约360万用于培训和40万用于测试)。 它具有2个标签: 标签1 :用于评论...
Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能。 无论你写一段小的js代码,还是写一个大型的HTML5应用,underscore都能...
UnderScore-源代码分析UnderScore源码分析UnderScore是一个javascript工具库,学习Underscore的原始码,提升自己的JS基本功
underscore_note underscore.js原始代码阅读学习笔记
var _ = require ( 'underscore' ) ; module . exports = { world : function ( ) { console . log ( 'world' ) ; } , test : function ( ) { console . log ( _ . uniqueId ( ) ) ; } } ; /* app.js */ var ...
underscore 源码解读系列文章
学习客户端服务架构 了解 API 保留常识模板模式,如布局和部分 第一次尝试 Express-EJS-Mustache(失败) 起初我用 Mustache 尝试了 EJS,但这有很多优点和缺点 优点 EJS 类似于 rails,Mustache 类似于 ...
大家都知道Underscore.js是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象。那么这篇文章我们就来学习下微信小程序如何使用第三方库Underscore.js,有需要的...
因为underscore本来就是为了充分发挥JavaScript的函数式编程特性,所以也提供了大量JavaScript本身没有的高阶函数。本文重点给大家介绍underscore之function知识,感兴趣的的朋友一起学习吧