2018-01-05 关于排序、《荒蛮故事》、列表点击自动排序、"use strict" 和懒惰、当英文遇上汉语

第一组:姚成栋 关于排序

有两种排序的方式:前端js,后台LINQ

  1. js:

JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。
sort() 方法用于对数组的元素进行排序。语法如下:arrayObject.sort(sortby)

返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

function NumAscSort(a,b)
{
 return a - b;
}
function NumDescSort(a,b)
{
 return b - a;
}
var arr = new Array( 3600, 5010, 10100, 801); 
arr.sort(NumDescSort);
alert(arr);
arr.sort(NumAscSort);
alert(arr);

sort(fun)接受了个排序规则函数,这个函数将比较2个数字的大小。而我们的对象数组排序,实际上原理也是一样的。

如果不比较数字的大小,则可以这样:

var myarray=["Apple", "Banana", "Orange"]
myarray.sort()

数组直接调用sort()后,数组按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

对于对象数组排序,我们先写一个构造比较函数的函数:

//by函数接受一个成员名字符串做为参数
//并返回一个可以用来对包含该成员的对象数组进行排序的比较函数
var by = function(name){
 return function(o, p){
   var a, b;
   if (typeof o === "object" && typeof p === "object" && o && p) {
     a = o[name];
     b = p[name];
     if (a === b) {
       return 0;
     }
     if (typeof a === typeof b) {
       return a < b ? -1 : 1;
     }
     return typeof a < typeof b ? -1 : 1;
   }
   else {
     throw ("error");
   }
 }
}

要排序的数组:

var employees=[]
employees[0]={name:"George", age:32, retiredate:"March 12, 2014"}
employees[1]={name:"Edward", age:17, retiredate:"June 2, 2023"}
employees[2]={name:"Christine", age:58, retiredate:"December 20, 2036"}
employees[3]={name:"Sarah", age:62, retiredate:"April 30, 2020"}

直接调用函数:

employees.sort(by("age"));

到这里,对象数组排序就算基本实现了。那如何实现多个键值排序呢?意思就是先是对age排序,如果age相同,再比较name。

这时,我们可以进一步修改by函数,让其可以接受第二个参数,当主要的键值产生一个匹配的时候,另一个compare方法将被调用以决出高下。

//by函数接受一个成员名字符串和一个可选的次要比较函数做为参数
//并返回一个可以用来包含该成员的对象数组进行排序的比较函数
//当o[age] 和 p[age] 相等时,次要比较函数被用来决出高下
var by = function(name,minor){
 return function(o,p){
   var a,b;
   if(o && p && typeof o === 'object' && typeof p ==='object'){
     a = o[name];
     b = p[name];
     if(a === b){
       return typeof minor === 'function' ? minor(o,p):0;
     }
     if(typeof a === typeof b){
       return a < b ? -1:1;
     }
     return typeof a < typeof b ? -1 : 1;
   }else{
     thro("error");
   }
 }
}

employees.sort(by('age',by('name')));
  1. LINQ
    基本语法为:
orderby .. ascending | descending[, ..ascending | descending](其中ascending表示升序排列,descending表示降序排列)

举个两个例子:

var query = from student in students
orderby student.ID ascending /*descending*/
select student; //查询表达式
qualifTypes.Where(k=>k.QT_QualificationCode==item.IM_InspectorTypeCode).ToArray();// 查询操作符

第二组:叶佳意 《荒蛮故事》

今天推荐一部西班牙的电影——《荒蛮故事》。该片由六个独立短片组成,讲述了以航班、饭馆、路怒、罚单、肇事和婚礼为主题的复仇故事。每个故事结构都十分紧张。情节的高潮是在猝不及防之下突然降临的。电影从一位漂亮的模特登机开始,模特在登上飞机后遇到风度翩翩的乐评家,他们提到都认识的加百列·帕斯特纳克,然后附近的人纷纷响应,他们都认识。居然全机舱的乘客都认识帕斯特纳克,都得罪过他。有个乘客说听闻帕斯特纳克最近成了飞行员,最后飞机爆炸了。帕斯特纳克癫狂的复仇行动和后面五个复仇小故事一样,突如其来,一波三折。影片反映了社会上的各种光鲜亮丽背后,潜藏着的不为人知的糜烂和无法愈合的阴暗面以及各种人性的丑恶...每个小故事的主角都在压力下释放了自我,实施了一闪而过的犯罪念头,发泄了被压抑的情绪,让看客拍手称快。即是荒诞的闹剧,也是对社会种种现象的尖锐抨击。


第三组: 列表点击自动排序

  • what

如下图:点击年度前


点击年度后


  • how

在<th>中加个class = "enablesorte" id ="xxx" ,id即该字段的id


第四组:李俊 "use strict" 和懒惰、处理一个数组或单个元素作为参数的方法

1. "use strict" 和懒惰

严格模式的JavaScript让开发人员更加安全的编写JavaScript。

默认情况下,JavaScript允许开发者懒惰,例如,我们在第一次声明变量的时候可以不用var,虽然这可能看起来像一个没有经验的开发人员,同时这也是很多错误的根源,变量名拼写错误或意外地将它提到了外部作用域。

程序员喜欢让电脑为我们做些无聊的事,检查一些我们工作的错误。"use strict"指令我们做这些,将我们的错误转换成JavaScript的错误。

我们把这个指令可以通过添加在一个js文件的顶部:

// 整个script文件都将是严格模式语法
"use strict";
var v = "Hi! I'm a strict mode script!";
或者在函数内:
function f()
{
// 函数范围内的严格模式语法
'use strict';
function nested() { return "And so am I!"; }
return "Hi! I'm a strict mode function! " + nested();
}
function f2() { return "I'm not strict."; }

在包含这个指令的JavaScript文件或者函数内,我们将一些较大的JavaScript项目中的不良行为直接在JavaScript引擎执行中禁止了。在其他情况中,严格模式改变以下的行为:
· 变量只有在前面 var 声明了才能用
· 试图写入只读属性产生的误差
· 必须用 new 关键字调用构造函数
· this 不会默认指向全局对象
· 非常有限的使用eval()
· 保护保留字符或未来保留字符不被作为变量名使用
严格模式在新项目中是很有好处的,但是在大多数地方没使用到它的老项目里使用它是非常具有挑战性的。当你把多个文件合并到一个文件时,它也是个问题,就像可能导致整个文件都在严格模式下执行。
它不是一个声明,只是一个字面量,早期版本的浏览器会忽略它。严格模式支持:
· IE 10+
· FF 4+
· Chrome 13+
· Safari 5.1+
· Opera 12+

2 处理一个数组或单个元素作为参数的方法
3 undefined 和 null 的不同
4 以非ASCII字符形式来排序字符串
5 改善嵌套条件
6 ReactJs 子级构造的keys是很重要的
7 AngularJs: digest vsapply
8 在数组插入一个项

详情见链接:
2018-01-08 "use strict" 和懒惰、处理一个数组或单个元素作为参数的方法、undefined 和 null 的不同……


第五组:周倩宇 当英文遇上汉语 就知道汉语有多强大了

  • 英文原文:
    You say that you love rain,
    but you open your umbrella when it rains...
    You say that you love the sun,
    but you find a shadow spot when the sun shines...
    You say that you love the wind,
    But you close your windows when wind blows...
    This is why I am afraid;
    You say that you love me too...

  • 普通版:
    你说你喜欢雨,但是下雨的时候你却撑开了伞;
    你说你喜欢阳光,但当阳光播撒的时候,你却躲在阴凉之地;
    你说你喜欢风,但清风扑面的时候,你却关上了窗户。
    我害怕你对我也是如此之爱。

  • 文艺版:
    你说烟雨微芒,兰亭远望;
    后来轻揽婆娑,深遮霓裳。
    你说春光烂漫,绿袖红香;
    后来内掩西楼,静立卿旁。
    你说软风轻拂,醉卧思量;
    后来紧掩门窗,漫帐成殇。
    你说情丝柔肠,如何相忘;
    我却眼波微转,兀自成霜。

  • 诗经版:
    子言慕雨,启伞避之。
    子言好阳,寻荫拒之。
    子言喜风,阖户离之。
    子言偕老,吾所畏之。

  • 离骚版:
    君乐雨兮启伞枝,
    君乐昼兮林蔽日,
    君乐风兮栏帐起,
    君乐吾兮吾心噬。

  • 五言诗版:
    恋雨偏打伞,爱阳却遮凉。
    风来掩窗扉,叶公惊龙王。
    片言只语短,相思缱倦长。
    郎君说爱我,不敢细思量。

  • 七言绝句版:
    恋雨却怕绣衣湿,喜日偏向树下倚。
    欲风总把绮窗关,叫奴如何心付伊。

  • 七律压轴版:
    江南三月雨微茫,罗伞叠烟湿幽香。
    夏日微醺正可人,却傍佳木趁荫凉。
    霜风清和更初霁,轻蹙蛾眉锁朱窗。
    怜卿一片相思意,犹恐流年拆鸳鸯。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容