`
zhangyaochun
  • 浏览: 2622335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

YUI研习--Array篇

阅读更多

前言

 

      关于array相关的api其实已经研习比较了多个框架的了,期间也看过部分YUI的源码,一直没有开一个分类去吧YUI,关于YUI,其实自己一直觉得没有一个完备的官方中文文档(官网的文档写的过于笼统)去推广,但是很多的公司前端框架的原型还是从YUI中衍生或者变形而来,学习一下还是有收获的。

 

注释:本分类所有取的YUI的源码版本为3.4.0

 

 

正文

 

1、 hash

 

  以前参照tangram整理过一个hash的api设计。

 

  这边主要贴出YUI的写法,只是细节上有小差异

 

 

/*
@example: Y.Array.hash(['A','B','C'],['a','b'])  
   {'A':'a','B':'b','C':true}
*/
YArray.hash = function(keys,values){
     var hash = {},
           vlen = (values && values.length) || 0,     //这边给了一个默认值0
           i,len;
     for(i=0,len = keys.length;i<len;i++){
         //加了一个判断 
         if(i in keys){
              hash[keys[i]] = vlen > i && i in values ? values[i] : true;
         } 
    }  
    return hash;
}
 

2、indexOf

 

   关于1.6特性的indexOf

 

   以前整理的一个indexOf的api

 

var Native = Array.prototype;

YArray.indexOf = Native.indexOf ?  function(array,value){
        //没有支持参数fromIndex
        return Native.indexOf(array,value);

}  : function(array,value){
        for(var i =0,len = array.length,i<len;i++){
              if(array[i] == value){
                     return i;
              }
        }
         return -1;       
};
 

3、each

 

   前面整理的each的api

 

var Native = Array.prototype;
YArray.each = YArray.forEach = Native.forEach ? function(array,fn,thisObj){
      Native.forEach.call(array || [],fn,thisObj || Y);      
      return Y;
} : function(array,fn,thisObj){
      for(var i= 0,len = (array && array.length) || 0;i<len;i++){
          if(i in array){
             //可以加上返回值判断进行循环的break
              fn.call(thisObj || Y , array[i],i,array);
          }
      }
      return Y;
};
 

4、numericSort

 

 

/*
@example 
 [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort);
  => [4, 8, 15, 16, 23, 42]
@mark 个人感觉这个api使用度不是那么高
*/
YArray.numericSort = function(a,b){
     return a -b;
};
 

 

 

 

  

 

 

 

 

1
1
分享到:
评论

相关推荐

    yuicompressor-maven-plugin

    **yuicompressor-maven-plugin详解** `yuicompressor-maven-plugin`是一款强大的Maven插件,主要用于优化前端资源,特别是JavaScript和CSS文件。这个插件是基于YUI Compressor,一个由Yahoo开发的开源工具,它能...

    yuicompressor-2.4.8.jar

    《yuicompressor-2.4.8.jar:前端优化与代码压缩的艺术》 在Web开发领域,优化前端性能是一项至关重要的任务,而yuicompressor-2.4.8.jar正是这样一款强大的工具,专为JavaScript代码压缩而设计,助力开发者实现...

    yuicompressor-yui compressor

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...

    eclipse yuicompressor-maven-plugin

    "eclipse yuicompressor-maven-plugin"是Maven生态系统中的一个插件,专门用于这个目的。下面将详细阐述这个插件的功能、用法以及它在Maven项目中的应用。 ### 1. Maven简介 Maven是一个强大的项目管理和综合工具,...

    yuicompressor-maven-plugin, 用于压缩 (Minify/Ofuscate/Aggregate) Javascript文件和使用 YUI 压缩器的CSS文件的Maven 插件.zip

    yuicompressor-maven-plugin, 用于压缩 (Minify/Ofuscate/Aggregate) Javascript文件和使用 YUI 压缩器的CSS文件的Maven 插件 [[Flattr this git repo] ( http://api.flattr.com/button/flattr-badge-large.png)]...

    yuicompressor-2.4.jar

    压缩JS所使用jar包!...压缩JS:java -jar yuicompressor-2.4.jar --type js xxx.js -o xxx.js --charset utf-8 压缩CSS:java -jar yuicompressor-2.4.jar --type css xxx.css -o xxx.css --charset utf-8

    webstorm_phpstorm_yuicompressor-2.4.8.jar

    标题中的"webstorm_phpstorm_yuicompressor-2.4.8.jar"正是YUI Compressor的一个版本,适用于WebStorm和PhpStorm。这个文件是Java可执行的JAR包,包含YUI Compressor的核心压缩算法,可以处理并压缩JavaScript和CSS...

    yui3-master.zip

    《深入理解YUI3:基于yui3-master.zip的探讨》 YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为Web开发者提供了丰富的功能和工具,以创建交互性强、性能优秀的网页应用。YUI3是...

    JS压缩工具、前端优化神器、yuicompressor-2.4.8.jar(百度云盘)

    JS压缩工具、前端优化神器、yuicompressor-2.4.8.jar、

    yuicompressor-2.3.5.jar

    用于压缩javascript脚本。 这个玩意,用来压缩JS文件。 jsMinifier为何物呢? jsMinifier是一个压缩JS文件的简单的工具,可以方便的集成到windowS中,使用winzip一样的去压缩JS文件(右键点击未压缩的JS文件,选择...

    yuicompressor-2.4.8

    yuicompressor压缩js,css

    YUI compressor-2.4.8

    该工具可以压缩js和css代码

    yuicompressor-2.4.2.jar

    yuicompressor.jar js/css压缩 //压缩JS java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js &gt; packed.js //压缩CSS java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src...

    yui-yuidoc-yuidoc-50-529-gc631758

    【标题】"yui-yuidoc-yuidoc-50-529-gc631758" 指向的是一个关于 Yahoo User Interface Library (YUI) 和 YUIDoc 的特定版本或修订版。YUI 是一个开源的 JavaScript 库,提供了一系列模块化的工具,用于构建富有交互...

Global site tag (gtag.js) - Google Analytics