underscorejs-sortBy学习
2.17 sortBy
2.17.1 语法
_.sortBy(list, iteratee, [context])
2.17.2 说明
返回一个排序后的list拷贝副本。
- list为集合,如数组、对象、字符串、arguments等
- iteratee为排序的依据,可以为function,元素的属性、元素的key也可以全局方法。
- iteratee也可以不传
- iteratee的参数为(value, key, list)
- iteratee如果是function需要返回值
- context可以改变iteratee内部的this
- 返回的结果是list的副本
2.17.3 代码示例
示例一: 比较适合于数组的元素是对象,进行排序
var stooges = [{name: 'moe', age: 60}, {name: 'larry', age: 40}, {name: 'curly', age: 50}];
var result = _.sortBy(stooges, 'age');
console.log(result);
//=> [{age: 40, name: 'larry'}, {age: 50, name: 'curly'}, {age: 60, name: 'moe'}]
示例二:iteratee为排序的依据
上例的iteratee对list元素的key,也可以是list元素的属性,或全局的方法。
var list = ['2.00', '1.000', '3.0', '-4'];
// iteratee为全局的方法
var arr1 = _.sortBy(list, Math.abs);
console.log(arr1) //=> ["1.000", "2.00", "3.0", "-4"]
// iteratee为元素的属性
var arr2 = _.sortBy(list, 'length');
console.log(arr2); //=> ["-4", "3.0", "2.00", "1.000"]
示例三:list为集合
//数组
_.sortBy([1, 4, 7, 10, -2]); //=> [-2, 1, 4, 7, 10]
//对象
_.sortBy({a: -2, b: 1, c: 4}); //=>[-2, 1, 4]
//字符串
_.sortBy('45123'); //=>["1", "2", "3", "4", "5"]
//arguments
(function(){
_.sortBy(arguments); //=>[-2, 1, 4]
}(-2, 1, 4));
示例四:iteratee的参数
_.sortBy(['a', 'b'], function(value, key, list){
console.log(value, key, list);
//=> a 0 ["a", "b"]
//=> b 1 ["a", "b"]
return value;
});
示例五:context可以改变iteratee内部的this
_.sortBy(['a'], function(value, key, list){
console.log(this); //=> Object {text: "hello"}
return value;
}, {text : 'hello'});
示例六: 返回的结果是list的副本
var list = ['1112', '222'];
var result = _.sortBy(list, 'length');
//list没有被改变
console.log(list); //=> ["1112", "222"]
console.log(result); //=> ["222", "1112"]
2.17.4 list特殊情况返回空数组
console.log(_.sortBy(null));
console.log(_.sortBy(NaN));
console.log(_.sortBy(undefined));
console.log(_.sortBy({}));
console.log(_.sortBy(''));
console.log(_.sortBy(true));
console.log(_.sortBy(false));
2.17.5 和_.map的对比
var list = [undefined, 4, 1, undefined, 3, 2];
var arr1 = _.map(list, function(){
});
var arr2 = _.sortBy(list, function(){
});
console.log(arr1); //=>[undefined, undefined, undefined, undefined, undefined, undefined]
console.log(arr2); //=>[undefined, 4, 1, undefined, 3, 2]
2.17.6 请将列表按at的值倒序输出(坑)
var list = [{
title : 1,
at : 1452691455595
},{
title : 3,
at : 1452691505847
},{
title : 2,
at : 1452691505347
}];
var result = (function(list){
//请写下你的代码
}(list));
console.log(result);
//=> [{title:3, at:1452691505847},{title:2, at: 1452691505347},{title:1, at:1452691455595}]
2.17.7 请将列表按stopDate的值排序输出。(坑)
不管是正序或倒序,stopDate的值null的时候,统一放在后面。
var list = [{
"id": "0",
"stopDate": null
}, {
"id": "1",
"stopDate": "10/06/2014"
}, {
"id": "2",
"stopDate": null
}, {
"id": "3",
"stopDate": "09/06/2014"
}];
var asc = (function (list) {
//请写下你的代码
}(list));
var desc = (function (list) {
//请写下你的代码
}(list));
underscorejs-sortBy学习的更多相关文章
- 不学就吃亏的underscorejs类库学习示例 ——(集合篇)
underscorejs是一个很不错的类库,我的很多项目都引用了这个类库,的确可以带来很多方便. 记得我当初学的时候,看underscorejs的api是看的一知半解的,甚至不明白api里的conte ...
- 大数据学习day24-------spark07-----1. sortBy是Transformation算子,为什么会触发Action 2. SparkSQL 3. DataFrame的创建 4. DSL风格API语法 5 两种风格(SQL、DSL)计算workcount案例
1. sortBy是Transformation算子,为什么会触发Action sortBy需要对数据进行全局排序,其需要用到RangePartitioner,而在创建RangePartitioner ...
- 细谈Slick(5)- 学习体会和将来实际应用的一些想法
通过一段时间的学习和了解以及前面几篇关于Slick的讨论后对Slick这个函数式数据库编程工具有了些具体的了解.回顾我学习Slick的目的,产生了许多想法,觉着应该从实际的工作应用角度把我对Slick ...
- JavaScript学习总结(二)数组和对象部分
pt学习总结(二)数组和对象部分 2016-09-16 分类:WEB开发.编程开发.首页精华暂无人评论 来源:trigkit4 分享到:更多1 对象部分 Object类型 Object ...
- backbone库学习-Collection
backbone库的结构: http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 本文所有例子来自于http://blog.cs ...
- Backbone学习笔记一Backbone中的MVC
原文章地址http://bigdots.github.io/2015/12/01/Backbone学习笔记(一)/#more Backbone.js为复杂WEB应用程序提供模型(models).集合( ...
- 《Learning Play! Framework 2》学习笔记——案例研究1(Templating System)
注解: 这是对<Learning Play! Framework 2>第三章的学习 本章是一个显示聊天记录的项目,只有一个页面,可以自动对聊天记录进行排序.分组和显示,并整合使用了less ...
- APPCAN学习笔记004---AppCan与Hybrid,appcan概述
APPCAN学习笔记004---AppCan与Hybrid,appcan概述 技术qq交流群:JavaDream:251572072 本节讲了appcan的开发流程,和开发工具 笔记不做具体介绍了,以 ...
- Angularjs学习笔记《一》
开始慢慢的学习新的框架,Angularjs,其中原理不知深浅,但有例子练习,慢慢熟知.看的英文文档一点点翻译学习. 第一个例子,写一个增加,选中,删除的例子, 首先要引进所用的框架源码,这样引进,下面 ...
- 学习ASP.NET MVC(十)——排序
1 按照价格对书籍进行排序 下面我们通过一个简单的例子学习如何对书籍信息按照价格进行排序. 首先,我们在Controllers\BookController.cs文件中的SearchIndex方法添加 ...
随机推荐
- 【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)
原文网址:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/20/2147086.html 基于 Android NDK 的学习之旅-----数据 ...
- wpa_cli 连接 wifi
转自:http://hi.baidu.com/yyangjjun/item/9dfe8e175439fc7a1009b5ba 1: run wpa_supplicant first use the ...
- 数位DP:SPOJ KPSUM - The Sum
KPSUM - The Sum One of your friends wrote numbers 1, 2, 3, ..., N on the sheet of paper. After that ...
- Profile GPU rendering
自Android 4.1引入了“Profile GPU rendering”这个开发工具以帮助分析应用程序性能并并精确定位渲染问题,Android 4.3增加了可视效果:On screen as ba ...
- SRM 504.5(2-1000pt)
DIV2 1000pt 题意:一群人排队,每次操作由要骰子决定,只要没有人中奖,游戏就不结束.若摇骰子摇出4,则队列第一个人中奖:否则,若摇的是奇数,则第一个人排队到队伍末尾去:否则,第一个人出局.若 ...
- apache POI 导出excel相关方法
apache POI 操作excel无比强大.同时有操作word和ppt的接口. 下面讲解poi中常用方法. 1,设置列宽 HSSFSheet sheet = wb.getSheetAt(0); sh ...
- FindControl的使用方法
Control.FindControl (String):在当前的命名容器中搜索带指定 id参数的服务器控件.(有点类似javascript中的getElementById(string)) 简单的例 ...
- 《JS原型》
@(JavaScript原型) JavaScript中最晦涩难懂的恐怕就是原型了.故以此笔记本来记录原型的学习过程,日后忘了可来温习. 一切皆为对象 null--Object&Function ...
- July收集荷兰国旗问题之三路partition
这道题目和分成两块的partition的扩展.比如有一堆0 1 2 数字组成的数组,要分成 00 00 11 1 1 222 2这样的顺序的. 利用lumoto版的partition能够非常好的解 ...
- Codeforces 437B The Child and Set
题目链接:Codeforces 437B The Child and Set 開始是想到了这样的情况,比方lowbit之后从大到小排序后有这么几个数,200.100,60.50.S = 210.那先选 ...