最近刚接触underscore,故对其中的部分使用过的内容进行总结,会不断补充。
【flatten
_.flatten(array, [shallow])
将一个多维的数组 array(可以是任何层数)转换为只有一层的数组。 如果传递 shallow参数,数组将只减少一维的嵌套。并不会更改原数组,也不会新建数组,要自己定义变量获取结果传递使用。】
_.flatten( [1, [2], [3, [[4]]]] ); => [1, 2, 3, 4]; _.flatten( [1, [2], [3, [[4]]]] , true ); => [1, 2, 3, [[4]]];
【groupBy
_.groupBy(list, iteratee, [context])
把一个集合分组为多个集合,通过 iterator 返回的结果进行分组. 如果 iterator 是一个字符串, 那么将使用 iterator 作为各元素的属性名来对比进行分组.返回一个对象。】
_.groupBy([1.3, 2.1, 2.4], function(num){ return Math.floor(num); }); => {1: [1.3], 2: [2.1, 2.4]} _.groupBy( ['one', 'two', 'three'] , 'length' ); => {3: ["one", "two"], 5: ["three"]} _.groupBy( [name:'a',count:1,name:'b',count:2] , 'name' ); => { a:{name:'a',count:1} , b:{name:'b'count:2} }
【countBy
_.countBy(list, iteratee, [context])
排序一个列表组成一个组,并且返回各组中的对象的数量的计数。类似groupBy,但是不是返回列表的值,而是返回在该组中值的数目。新建变量命以传递使用。】
_.countBy([1, 2, 3, 4, 5], function(num){ return num % 2 == 0 ? 'even': 'odd'; }); => {odd: 3, even: 2}
【partition
_.partition(array, predicate)
拆分一个数组(array)为两个数组,第一个数组的元素满足predicate迭代函数, 不能满足predicate函数的进入第二个数组。需要return,新建数组保存结果。】
_.partition( [0, 1, 2, 3, 4, 5] , isOdd ); => [[1, 3, 5], [0, 2, 4]]
【uniq
_.uniq(array, [isSorted], [iteratee]) 别名: unique
返回 array去重后的副本, 使用 === 做相等测试. 如果您确定 array 已经排序, 那么给 isSorted 参数传递 true值, 此函数将运行的更快的算法. 如果要处理对象元素, 传参 iterator 来获取要对比的属性。】
_.uniq( [1, 2, 1, 3, 1, 4] ); => [1, 2, 3, 4] _.uniq( [{name:'sp',age:1},{name:'sp',age:2},{name:'sps',age:2}],false,function(a){return a.name}) =>[{name:"sp",age:1},{name:"sps",age:2}]
【object
_.object(list, [values])
将数组转换为对象。传递任何一个单独[key, value]对的列表,或者一个键的列表和一个值得列表。 如果存在重复键,最后一个值将被返回。设置变量。】
_.object( ['moe', 'larry', 'curly'] , [30, 40, 50] ); => {moe: 30, larry: 40, curly: 50} _.object( [ ['moe', 30] , ['larry', 40] , ['curly', 50] ]); => {moe: 30, larry: 40, curly: 50}
【without
_.without(array, *values)
返回一个删除所有values值后的 array副本,除非array中含有否则使用数组作为*values是错误的。(注:使用===表达式做相等测试。)】
_.without( [1, 2, 1, 0, 3, 1, 4] , 0, 1); => [2, 3, 4]
【合并对象
extend_.extend(destination, *sources)
复制source对象中的所有属性覆盖到destination对象上,并且返回 destination 对象. 后面对象相同的属性的值会把前面的覆盖掉(如果属性键有重复).】
_.extend({name: 'moe'}, {na: 50},{age:23}); => {name: "moe", na: 50, age: 23}
compact_.compact(array)
返回一个除去所有false值的 array副本。 在javascript中, false, null, 0, "", undefined 和 NaN 都是false值.
_.compact([0, 1, false, 2, '', 3]); => [1, 2, 3]
--未完待续--
相关推荐
underscore.js是一款轻量级的JavaScript实用库,它为JavaScript开发提供了大量的实用函数,极大地增强了原生JavaScript对象的处理能力。在"underscore-1.6.0.zip"这个压缩包中,包含的就是underscore库的1.6.0版本。...
总结,Underscore.js作为一款优秀的JavaScript实用库,它的源码学习能够提升我们的编程技巧,加深对函数式编程的理解,同时也能帮助我们在项目中更好地利用这些工具,提高代码质量。通过深入学习和实践,你将能够...
总结来说,使用JavaScript的Canvas和underscore.js构建贪吃蛇游戏,既锻炼了对图形编程的理解,也展示了JavaScript库的高效应用。这是一个很好的实践项目,有助于提升开发者的游戏开发技能和JavaScript编程能力。...
在JavaScript编程中,Underscore.js是一个非常流行的实用函数库,它提供了许多便利的方法来处理对象、数组、函数等。标题中的"underscore.multiplexer"指的是Underscore.js库中的一个高级特性,允许我们创建一个函数...
- 在上面的例子中,我们在初始化时调用了 `render` 方法,该方法首先通过Underscore.js编译模板,然后将编译后的HTML内容设置到 `el` 对应的DOM元素中。 #### 五、添加事件监听器 Backbone.js允许你在View中添加...
### JavaScript Application Architecture with Backbone.js #### 一、引言 在现代Web开发中,随着用户对交互性与体验要求的不断提高,单页面应用(Single Page Application, SPA)逐渐成为主流趋势之一。在这种...
总结来说,"underscore-java"是一个非常有价值的开源项目,它为Java开发者带来了JavaScript中的优秀实践,提升了开发效率。通过学习和使用这个库,我们可以更好地理解和运用函数式编程的思想,写出更加优雅的Java...
描述中提到了“Underscore.js家庭作业”,这暗示了课程的一个部分可能专注于Underscore.js库。Underscore.js是一个轻量级的JavaScript实用程序库,提供了许多帮助开发者更便捷地操作数据和处理函数的工具。...
Require.js是一个JavaScript模块加载器,其主要作用是帮助页面管理JavaScript文件的依赖关系,并且能够异步加载JavaScript文件以提高页面加载的性能。使用Require.js的目的是为了解决在浏览器端开发时遇到的两个主要...
总结来说,这个Backbone.js的Hello World实例展示了如何利用Backbone的核心组件(Model、View、Controller)与后端进行通信,以及如何使用模板引擎(Mustache)动态地展示数据。它是一个基本的单页应用(SPA)结构,...
Underscore.js是一个提供了一套丰富的JavaScript实用工具函数库,它的封装方式经常被引为封装通用模块的典范,Node.js中的开发者们可借鉴其设计理念和实现方法。 封装通用模块的目的在于隐藏内部实现细节,提供清晰...
在`main.js`中,配置了require.js的模块路径,这样就可以通过模块名称直接引用所需的库,如Zepto.js、Fastclick.js、Underscore.js和Backbone.js。这些库提供了DOM操作、事件处理、数据处理等功能,为图片查看器的...
3. Underscore.js:与Lodash类似,提供了一套实用的函数集合,帮助开发者编写更简洁的代码。 4. Moment.js:处理日期和时间的强大库,提供了丰富的API来解析、验证、操作和显示日期。 5. Axios:一个基于Promise的...
废稿部分包含了一些被弃用的内容,如一些流行的JavaScript库和框架(如jQuery、Underscore.js等)的简介和使用方法。而草稿部分则涉及了Node.js相关的内容,包括Node.js的基本概念、核心模块、npm包管理器、Express...
`underscore.js` 是一个广泛使用的JavaScript工具库,它包含许多相似的功能。通过基准测试,开发者可以了解在相同操作下,`vutils` 相对于`underscore.js`的性能优势或劣势,从而在项目中选择更适合的工具。 **四、...
3. **模板引擎**:虽然Backbone.js本身并不包含内置的模板引擎,但它支持任意JavaScript模板库,如Underscore.js的模板,用于渲染视图。 4. **集合(Collection)**:集合是一组模型的容器,提供了对模型数组的操作...
总结,Underscore作为JavaScript的实用工具库,以其强大的功能和良好的兼容性,成为了许多开发者的首选。通过学习和掌握Underscore,我们可以提高代码的可读性和维护性,提升开发效率。无论是处理数组、对象,还是...
总结起来,"国外Java Script经典封装"涵盖了JavaScript开发中常用和重要的库和工具,它们是现代Web开发不可或缺的一部分。通过学习和掌握这些资源,开发者能够提高工作效率,创建出功能丰富、用户体验优良的Web应用...
Node.js作为一个强大的JavaScript服务器端平台,为开发者提供了丰富的开发工具、包和框架,极大地提高了开发效率和项目的可维护性。以下是一些常见的Node.js开发工具、开发包和框架的详细介绍: 1. **开发工具** -...