`
sodler
  • 浏览: 14603 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

underscore.js 部分内容总结

阅读更多

最近刚接触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中, falsenull0""undefined 和 NaN 都是false值.

_.compact([0, 1, false, 2, '', 3]);
=> [1, 2, 3]

 

 

--未完待续--

分享到:
评论

相关推荐

    underscore-1.6.0.zip

    underscore.js是一款轻量级的JavaScript实用库,它为JavaScript开发提供了大量的实用函数,极大地增强了原生JavaScript对象的处理能力。在"underscore-1.6.0.zip"这个压缩包中,包含的就是underscore库的1.6.0版本。...

    underscore源码学习计划

    总结,Underscore.js作为一款优秀的JavaScript实用库,它的源码学习能够提升我们的编程技巧,加深对函数式编程的理解,同时也能帮助我们在项目中更好地利用这些工具,提高代码质量。通过深入学习和实践,你将能够...

    snakegame:使用画布和 underscore.js 的贪吃蛇游戏

    总结来说,使用JavaScript的Canvas和underscore.js构建贪吃蛇游戏,既锻炼了对图形编程的理解,也展示了JavaScript库的高效应用。这是一个很好的实践项目,有助于提升开发者的游戏开发技能和JavaScript编程能力。...

    underscore.multiplexer:当您希望函数接受单个参数集或多个参数集时! (考虑工厂功能)

    在JavaScript编程中,Underscore.js是一个非常流行的实用函数库,它提供了许多便利的方法来处理对象、数组、函数等。标题中的"underscore.multiplexer"指的是Underscore.js库中的一个高级特性,允许我们创建一个函数...

    实例讲解JavaScript的Backbone.js框架中的View视图_.docx

    - 在上面的例子中,我们在初始化时调用了 `render` 方法,该方法首先通过Underscore.js编译模板,然后将编译后的HTML内容设置到 `el` 对应的DOM元素中。 #### 五、添加事件监听器 Backbone.js允许你在View中添加...

    JavaScript_Application_Architecture_with_Backbone.js

    ### JavaScript Application Architecture with Backbone.js #### 一、引言 在现代Web开发中,随着用户对交互性与体验要求的不断提高,单页面应用(Single Page Application, SPA)逐渐成为主流趋势之一。在这种...

    eb-api-1.0.30.zip

    总结来说,"underscore-java"是一个非常有价值的开源项目,它为Java开发者带来了JavaScript中的优秀实践,提升了开发效率。通过学习和使用这个库,我们可以更好地理解和运用函数式编程的思想,写出更加优雅的Java...

    Telerik2015-JavaScript-Applications:JavaScript-应用程序课程

    描述中提到了“Underscore.js家庭作业”,这暗示了课程的一个部分可能专注于Underscore.js库。Underscore.js是一个轻量级的JavaScript实用程序库,提供了许多帮助开发者更便捷地操作数据和处理函数的工具。...

    基于Require.js使用方法(总结)

    Require.js是一个JavaScript模块加载器,其主要作用是帮助页面管理JavaScript文件的依赖关系,并且能够异步加载JavaScript文件以提高页面加载的性能。使用Require.js的目的是为了解决在浏览器端开发时遇到的两个主要...

    Backbone.js的Hello World程序实例.docx

    总结来说,这个Backbone.js的Hello World实例展示了如何利用Backbone的核心组件(Model、View、Controller)与后端进行通信,以及如何使用模板引擎(Mustache)动态地展示数据。它是一个基本的单页应用(SPA)结构,...

    Node.js中对通用模块的封装方法

    Underscore.js是一个提供了一套丰富的JavaScript实用工具函数库,它的封装方式经常被引为封装通用模块的典范,Node.js中的开发者们可借鉴其设计理念和实现方法。 封装通用模块的目的在于隐藏内部实现细节,提供清晰...

    require、backbone等重构手机图片查看器

    在`main.js`中,配置了require.js的模块路径,这样就可以通过模块名称直接引用所需的库,如Zepto.js、Fastclick.js、Underscore.js和Backbone.js。这些库提供了DOM操作、事件处理、数据处理等功能,为图片查看器的...

    javascript常用函数 javascript 常用库

    3. Underscore.js:与Lodash类似,提供了一套实用的函数集合,帮助开发者编写更简洁的代码。 4. Moment.js:处理日期和时间的强大库,提供了丰富的API来解析、验证、操作和显示日期。 5. Axios:一个基于Promise的...

    javascript标准参考教程_阮一峰

    废稿部分包含了一些被弃用的内容,如一些流行的JavaScript库和框架(如jQuery、Underscore.js等)的简介和使用方法。而草稿部分则涉及了Node.js相关的内容,包括Node.js的基本概念、核心模块、npm包管理器、Express...

    vutils:一个javascript辅助函数库

    `underscore.js` 是一个广泛使用的JavaScript工具库,它包含许多相似的功能。通过基准测试,开发者可以了解在相同操作下,`vutils` 相对于`underscore.js`的性能优势或劣势,从而在项目中选择更适合的工具。 **四、...

    portfolio-alpha:我构建用来测试Backbone.js的在线产品组合

    3. **模板引擎**:虽然Backbone.js本身并不包含内置的模板引擎,但它支持任意JavaScript模板库,如Underscore.js的模板,用于渲染视图。 4. **集合(Collection)**:集合是一组模型的容器,提供了对模型数组的操作...

    underscore:Underscore的Shim存储库

    总结,Underscore作为JavaScript的实用工具库,以其强大的功能和良好的兼容性,成为了许多开发者的首选。通过学习和掌握Underscore,我们可以提高代码的可读性和维护性,提升开发效率。无论是处理数组、对象,还是...

    国外Java Script经典封装

    总结起来,"国外Java Script经典封装"涵盖了JavaScript开发中常用和重要的库和工具,它们是现代Web开发不可或缺的一部分。通过学习和掌握这些资源,开发者能够提高工作效率,创建出功能丰富、用户体验优良的Web应用...

    我用的一些Node.js开发工具、开发包、框架等总结

    Node.js作为一个强大的JavaScript服务器端平台,为开发者提供了丰富的开发工具、包和框架,极大地提高了开发效率和项目的可维护性。以下是一些常见的Node.js开发工具、开发包和框架的详细介绍: 1. **开发工具** -...

Global site tag (gtag.js) - Google Analytics