2012.09.09 js

一转眼,就从5月跑到9月了,很快就国庆了。不知不觉时间走了那么多,很快这年也会过了。

还差4天,就在新公司呆够半年了。 这半年来,很多学习计划都没有坚持。 这半年来,技术上也感觉没什么进步,但随着加入一些技术群,还有和同事的接触,能感到比以前明显的压迫感,一种担心被淘汰的压迫感。

昨晚继续看了下《javascript高级程序设计》,现在来记录一下昨天看了的内容和收获:

1. 昨天看的是“12章 表格排序”,这里有个sort方法的扩展使用。 sort方法是Array对象的原生方法,可以这样使用:

var arr = ['a','c','b'];
arr.sort(); // return ['a','b','c'] ;

 一般sort方法用于字符串时是最准确的,若不加修改,就用于数字的排序,可能会出错,因为sort方法会默认把数组元素当字符串排序,

那么当出现1,123,2这样的数组时, 123会排在2前面。

而sort方法是可以接受一个函数类型的参数的,这个参数需要接受两个参数,假如是a和b,如下:

function compare(a,b)
{
    return a-b;    
}

var arr = [1,123,2,234];
arr.sort(compare); // return [1,2,123,234];

通过以上的方法,可以正确的对数字数组进行排序。

当然,如果只是到此为止,那也没什么好写的,我看的那一章,是对表格排序,看的小节里说的是对对象的排序,也就是tr对象的数组。

具体代码就不敲了,因为sort方法可以传入自定义的函数,所以函数也就可以选择用数组对象中的某些属性进行排序。

这个特点可以进一步使用在对json数组的排序或其他情况下。

2. 函数生成器。

说的是用闭包,通过一个参数,自动生成sort方法中需要用到的排序函数(传入参数生成按某列进行排序的比较函数)。这样对闭包的用法用得比较少。感觉很不错。

                                                    --2012.09.09

原文地址:https://www.cnblogs.com/bee0060/p/2677423.html