• 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检索的是(不指定检索起始索引位置)元素第一次在数组中出现的索引值。

  • 相关阅读:
    进入全屏 nodejs+express+mysql实现restful风格的增删改查示例
    WebAPI 实现前后端分离
    android 集成支付宝app支付(原生态)-包括android前端与java后台
    Windows 64 位系统下 Python 环境的搭建
    Es6主要特征详解
    js上传图片
    Python socket
    设置windows开机自启某个软件
    oracle导入导出数据
    mysql触发器,答题记录表同步教学跟踪(用户列表)
  • 原文地址:https://www.cnblogs.com/zhuhuoxingguang/p/6006743.html
Copyright © 2020-2023  润新知