1.compact
删除数组中的空元素(不是空字符串)、undefined、null
在定义变量时,定义过filter = emptyArray.filter,即调用javascript原生的数组处理函数filter,对传入的数组遍历,返回不包含空元素、undefined、null的新数组。
2.flatten 数组扁平化
通过调用$.fn.concat处理类似[1,2,[3,4],5]的扁平化,变为[1,2,3,4,5],但是只能处理一层的数组嵌套,不能处理类似[1,[2,3,[4,55[6,7]]]]这种多层数组嵌套的情况。
可以稍作修改,以便处理多层数组嵌套的情况。
3.camelize 将使用连字符-的属性转换为驼峰式写法,以方便javascript的调用。
关键点在于字符串的原生函数replace的两个参数,第一个参数是个正则表达式:匹配一个或多个-以及连字符后面的一个字母,并将字母转换大写。
4.dasherize 可以理解为camelize的倒叙行为,将驼峰式写法转换为连字符的写法
关键点也是在于理解4个正则表达式的含义:
第一个和第四个正则不解释。
先看第二个正则表达式的含义:将连续出现一次或多次的大写字母与连续出现一个大写字母和一个小写字母之间加上_,形象点的话应该是(连续出现一次或多次的大写字母)_(连续出现一个大写字母和一个小写字母);
第三个正则表达式的含义:将出现一次小写字母或者一次数字和一次大写字母之间添加_,(一次小写字母或者一次数字)_(一次大写字母)。
5.uniq 数组去重
利益的原理是:如果该条数据在数组中的位置与使用indexOf检索到的索引值不同,则说明数组中有与其相同的值。
indexOf检索的是(不指定检索起始索引位置)元素第一次在数组中出现的索引值。