zepto源码--compact、flatten、camelize、dasherize、uniq--学习笔记
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检索的是(不指定检索起始索引位置)元素第一次在数组中出现的索引值。
最新文章
- sh5.while 脚本练习
- (转)SQL Server 中WITH (NOLOCK)浅析
- Oracle管理基础
- linux驱动程序之电源管理之标准linux休眠与唤醒机制分析(一)
- Painting The Wall 期望DP Codeforces 398_B
- SpringMVC的web.xml配置注意
- OSG坐标系统
- VirtualBox 更改主机和虚拟机之间的鼠标切换热键
- IIS 部署问题 404
- 洛谷P4606 [SDOI2018]战略游戏 [广义圆方树]
- Springboot多数据源配置--数据源动态切换
- .net 重新注册
- 类的 __call__ 和__repr__ 方法
- vue2.0--请求数据
- CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)
- Django如何安装指定版本
- checkbox 多选框 :jquery之全选、全不选、反选
- 20145315《网络对抗》——注入shellcode以及 Return-to-libc攻击实验
- cmd 字符串截取
- egg.js-基于koa2的node.js入门