- 浏览: 2560369 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1286)
- js-oop (2)
- js-window (10)
- js-event (19)
- js-string (37)
- js-array (27)
- js-page (4)
- js-dom (62)
- js-lang (8)
- js-number (7)
- js-platform (3)
- js-object (15)
- js-element (3)
- js-browser (7)
- js-url (6)
- js-date (10)
- css基础 (48)
- css优化 (15)
- html基础 (17)
- html标签 (19)
- js基础 (117)
- js-兼容性差异 (33)
- js引擎 (3)
- js性能 (14)
- json (6)
- jQuery源码浅析 (43)
- web mobile开发资料 (78)
- js跨域 (2)
- html5 (74)
- html5-canvas (7)
- css3 (53)
- 浏览器 (5)
- api设计学 (3)
- js-加载 (3)
- linux (37)
- 架构师 (1)
- php (2)
- self开发的脚本库--凤凰 (2)
- web应用名词 (6)
- javascript新特性翻译 (8)
- ajax (6)
- jQuery动画效果 (7)
- prototype的解读 (13)
- 优秀插件翻译 (1)
- css解决方案 (26)
- 数据库 (2)
- english daily (59)
- 浏览器内核探究 (1)
- jQuery插件介绍 (9)
- jquery基础篇 (26)
- chrome浏览器问题整理 (14)
- js选择器那些事 (3)
- 前端框架 (26)
- Firefox私有属性 (11)
- webkit私有属性集合 (17)
- 书籍推荐 (21)
- 数据结构 (1)
- 网站建设相关 (7)
- 好文翻译 (2)
- 个人作品 (3)
- kissy的解读 (4)
- css-layout(布局研究) (5)
- less研究 (1)
- YUI探究 (1)
- hash探究 (1)
- js动画 (7)
- 前端面试题 (37)
- css书写规范 (1)
- js模板引擎 (6)
- js模块化 (19)
- 编写高质量代码 (3)
- 性能探究--应用协议 (2)
- 前端图像处理 (19)
- Mac OS相关 (21)
- 正则表达式 (11)
- 离线应用相关 (0)
- 前端工具 (65)
- nodeJS (55)
- jquery优化篇 (2)
- 设计模式探究系列 (3)
- windows7 (2)
- IE10 (10)
- 微博开放平台探究 (2)
- 常用web服务接口 (1)
- 数据存储相关 (8)
- 零时文件 (2)
- jQuery Mobile (16)
- backbone (15)
- underscore (22)
- sass (11)
- android (3)
- phonegap (10)
- IE私有 (11)
- qwrap (8)
- git (14)
- chrome extensions (5)
- freemarker (11)
- angularJS (3)
- seo (2)
- markdown (3)
- css动画 (4)
- 安卓开发 (2)
- React (7)
- 活动页技术 (1)
- 网络安全 (3)
- grunt (7)
- Lo-Dash (3)
- 前端国际化 (4)
- 版本控制 (2)
- 盒模型 (4)
- 微信开发 (1)
- Mock数据工具 (1)
- sails (1)
- vim (1)
- js-color (1)
- iOS 基础 (43)
最新评论
-
jertom:
<div id="showInfo" ...
addEventListener等事件监听的参数细谈 -
乌托邦国王:
引用[u][/u]
css3动画属性系列之transform细讲移动translate -
hvang1988:
能提供附件下载吗,找不到js库,google封了访问不了
Syntaxhighlighter---代码高亮插件介绍 -
sscsacdsadcsd:
我的天 那到底是为什么function是object我看und ...
typeof func ==='function'的疑惑 -
wkjiangwk:
试了,没用,你们从不去测试。
介绍一下x-webkit-speech -------实现语音输入
很多人在使用jquery的时候应该多会有array去重或者合并的需求吧,那么你一定对$.merge和$.unique不会陌生吧。
1.$.merge----------其实这个功能只是合并两个数组,返回的是array,包含第一个数组的元素后面跟着第二个数组元素
ps:这个不会去重复。
上源码:/*
原理其实还是比较简单 i是第一个数组的length l是第二个数组的length 对第二个进行循环,在第一个数组length的基础上++往里面赋值 所以返回的数组是第一个数组然后是第2个数组 */ function merge(first,second){ var i = first.length, j = 0; if(typeof second.length === "number"){ for(var l =second.length;j<l;j++){ first[i++] = second[j]; } }else{ while(second[j] !== undefined){ first[i++] = second[j++]; } } first.length = i; //严谨的jquery啊,一般人是不会想到这边控制一下的 return first; }
$.merge([0,1,2],[2,1,3]) ------------------------[0,1,2,2,1,3]
2.$.unique --------如果你是一个jquery接触比较长的或者一直研究的人你会发现,这个api是经历过版本变革的
在1.3rc2版本中源码是这个的
/* 注意这个版本是没有对数组元素为字符串和数字去重功能的 如果要改的话可以吧 jQuery.data(array[i])直接换成array[i] */ function unique(array){ var ret =[],done ={}; try{ for(var i=0,length =array.length;i<length;i++){ var id= jQuery.data(array[i]); if(!done[id]){ done[id] = true; ret.push(array[i]); } } }catch(e){ ret =array; } return ret; }
变革点在1.4.1,从这个版本开始你会发现这样一句话
jQuery.unique = Sizzle.uniqueSort;
没有单独的unique的api了,你不知道Sizzle,好吧,多看看源码吧。不过我也会陆续放出自己的一些文档说明
好了先上源码:
/* 当然这边我没有放出sortOrder相关的api,有兴趣的自己看看 我注意想说的是思想 其实大家注意了splice了吧 算法是从index第一个开始和第0个去比,依次下去,相同就调用splice删除一个 */ function uniqueSort(results){ if(sortOrder){ hasDuplicate = baseHasDuplicate; results.sort(sortOrder); if(hasDuplicate){ for(var i=1;i<results.length;i++){ if(results[i] === results[i-1]){ results.splice(i--,1); } } } } return results; }
其实如果你一直在研究jQuery的源码 你会发现除了很多人一直再喊的性能上的提高,无论是代码的严谨性和兼容饱满性多在每一个版本中体现。学习JQuery,你需要的慢慢是从使用它,到2次封装它,再到领会它。
ps:下面我放出一个自己lib库的array的unique方法(设计思想还是tangram的,你不知道tangram,噢,你out了,呵呵)
/* *unique-unique the array;if it has same items will delete one* *@param {Array} source---the array* *@param {Function} compareFn---the compareFn* *@return {Array} result ----the uniqued array* */ ZYC.array.unique = function(source,compareFn){ var _length =source.length, result =source.slice(0), //clone source i,_item; // if compareFn is not function we will build one if('functrion' != typeof compareFn){ compareFn = function(item1,item2){ return item1 === item2; }; } //we use double circulation to compare the items while (--_length >0){ _item = result[_length]; // start from the last i = _length; while(i --){ if(compareFn(_item,result[i])){ result.splice(_length,1); break; } } } return result; };
十一的目前是进一步熟悉tangram grid。。自己也要写一个啊.
各位十一快乐
评论
2 楼
zhangyaochun
2011-09-30
lizaochengwen 写道
请问:tangram有什么好呢???跟jquery有什么区别和优势???
每一个人看法不一样 对自己有提高就行。。我虽然一直研究jQuery到现在,但是我还是觉得jQuery的核心包依赖大,不可分离,而且比较jQuery的研究需要有点资本的人才理解。。而tangram是分离式的,简单,性能上也不差
1 楼
lizaochengwen
2011-09-30
请问:tangram有什么好呢???跟jquery有什么区别和优势???
发表评论
-
array的reduce
2014-04-27 20:12 3512ES5 (js 1.8)加入了 reduce ... -
[]的二义性
2013-06-06 19:43 1004先看一道题: //a赋值的是[und ... -
array中最后一个空元素的差异
2013-06-05 16:53 1409本文来自w3help的一篇《SJ2007: ... -
qwrap-hashset之intersect
2013-04-25 18:55 1261本文开始载入qwrap的几个hashset相 ... -
qwrap-hashset之union
2013-04-25 17:43 1328本文开始载入qwrap的几个hashset相 ... -
介绍jquery事件的一种内部写法
2013-03-25 20:00 1957注释:本文不探究jquery event机制, ... -
jquery add详解
2013-03-19 18:40 0add:function(elem,types, ... -
jquery事件系统解耦之一
2013-03-19 17:43 0先上代码:http://code.jqu ... -
jquery api之camelCase
2013-03-12 11:36 1186本代码取之:1.4.3版本(才开始有) ... -
underscore之size
2013-02-28 17:29 1497size _.size(l ... -
underscore的数组操作之first与last
2013-02-26 13:21 1419first (居然还有两个别名:he ... -
underscore的数组操作之difference
2013-02-26 11:04 2001difference _.di ... -
jq的选择器流程之二
2013-01-28 16:45 0前面简单些了一篇《jq的选择器流程分析开篇》,本文关注1. ... -
jq的选择器流程分析开篇
2013-01-28 14:17 1694本文简单地分析以下jquery的选择器流程: 为了 ... -
jquery Sizzle系列之filters
2013-01-28 12:16 1695本代码来自1.7.1版本。 jQuery.expr ... -
event.isDefaultPrevented
2013-01-14 12:18 1604jQuery 1.3版本开始引入了一个这个 ... -
删除数组的偶数项
2013-01-06 17:04 4019问题:要删除指定数组中偶数索引的item? ----- ... -
jQuery相关的boxModel
2012-12-21 20:58 1555此方法比较简单,但是 ... -
深入解读jquery的数据存储相关(data)序3
2012-12-19 18:27 2185前言: 上一篇: 深入解读jquery的数 ... -
深入解读jquery的数据存储相关(data)序3
2012-12-19 18:26 1本文关注一下jQuery1.4版本: 主要的变化: ...
相关推荐
$.jQuery( selector [, context] ), .jQuery( element ), .jQuery( elementArray ), .jQuery( jQueryObject ), .jQuery( ) $.jQuery( html [, ownerDocument] ), .jQuery( html, props ) $.jQuery( fn ) jQuery ...
* jQuery.print, version 1.3.2 * (c) Sathvik Ponangi, Doers' Guild * Licence: CC-By (http://creativecommons.org/licenses/by/3.0/) *------------------------------------------------------------------...
与beyondcompare工具差不多的使用方式,winmerge是开源免费版。当您有两个以上的内容相似的文字文件时,WinMerge就可以立刻派上用场,帮您检查两个文件里头不同之处。如您有写过程序就会了解,当您在改版时,在新的...
jQuery 1.11.0 速查表 核心 jQuery 核心函数 jQuery([sel,[context]]) jQuery(html,[ownerDoc])1.8* jQuery(callback) jQuery.holdReady(hold) jQuery 对象访问 each(callback) size() length selector ...
$.inArray(value, array) $.toArray() $.merge(first, second) $.unique(array) $.parseJSON(json) 函数操作 $.noop $.proxy(function, scope) 测试操作 $.contains(container, contained) $.isArray(obj) $.is...
WinMerge-2.16.8-x64-Setup.exe
Araxis Merge Professional) v2014.4565x86特别版-在win7x64上成功--文件夹与文件对比修改.rarAraxis Merge Professional) v2014.4565x86特别版-在win7x64上成功--文件夹与文件对比修改.rarAraxis Merge ...
bootstrap table实现合并单元格效果,切换第二页也合并单元格效果,需要依赖于bootstrap-table.js,bootstrap table.css
jQuery 核心函数 jQuery(expr, [context]) jQuery(html, [ownerDoc]) jQuery(elements) jQuery(callback) jQuery 对象访问 each(callback) size() length selector context get() get(index) index...
WinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-Setup.zipWinMerge-2.7.5.2-...
jQuery 核心函数 jQuery(expr, [context]) jQuery(html, [ownerDoc]) jQuery(elements) jQuery(callback) jQuery 对象访问 each(callback) size() length selector context get() get(index) index...
资源来自pypi官网。 资源全名:triangular-grid-merge-1.0.0.tar.gz
data-bag-merge-源码.rar
安装方法: WinMerge 3 ========== WinMerge 3 is a port of WinMerge (http://winmerge.org) to use cross-platform with Qt (http://qt.nokia.com/) framework. This project is still in very early stages. ...
WinMerge-2.12.4-src(1).zip source WinMerge-2.12.4-src(1).zip source
通过merge-sort算法的实现,掌握外存算法所基于的I/O模型与内存算法基于的RAM模型的区别;理解不同的磁盘访问优化方法是如何提高数据访问性能的。