jQuery.merge( first, second )
来源:互联网 发布:sql给字段添加默认值 编辑:程序博客网 时间:2024/06/14 19:25
本文所属图书 > jQuery技术内幕:深入解析jQuery架构设计与实现原理
本文所属图书 > jQuery技术内幕:深入解析jQuery架构设计与实现原理
方法jQuery.merge( first, second )用于合并两个数组的元素到第一个数组中。事实上,第一个参数可以是数组或类数组对象,即必须含有整型(或可以转换为整型)属性length;第二个参数则可以是数组、类数组对象或任何含有连续整型属性的对象。
方法jQuery.merge()的合并行为是破坏性的,将第二个数组中的元素添加到第一个数组中后,第一个数组就被改变了。如果希望原来的第一个数组不被改变,可以在调用jQuery.merge()之前创建一份第一个数组的副本:
var newArray = $.merge([], oldArray);
方法jQuery.merge( first, second )的相关代码如下所示:
724 merge: function( first, second ) {
725 var i = first.length,
726 j = 0;
727
728 if ( typeof second.length === "number" ) {
729 for ( var l = second.length; j < l; j++ ) {
730 first[ i++ ] = second[ j ];
731 }
732
733 } else {
734 while ( second[j] !== undefined ) {
735 first[ i++ ] = second[ j++ ];
736 }
737 }
738
739 first.length = i;
740
741 return first;
742 },
第724行:定义方法jQuery.merge( first, second ),它接受2个参数:
参数first:数组或类数组对象,必须含有整型(或可以转换为整型)属性length,第二个数组second中的元素会被合并到该参数中。
参数second:数组、类数组对象或任何含有连续整型属性的对象,其中的元素会被合并到第一个参数first中。
第725行:初始化变量i为first.length,该变量指示了插入新元素时的下标。first.length必须是整型或可以转换为整型,否则后面执行i++时会返回NaN。
第728~731行:如果参数second的属性length是数值类型,则把该参数当作数组处理,把其中的所有元素都添加到参数first中。
第733~737行:如果参数second没有属性length,或者属性length不是数值类型,则把该参数当作含有连续整型(或可以转换为整型)属性的对象,例如,{ 0:'a', 1:'b'},把其中的非undefined元素逐个插入参数first中。
第739行:修正first.length。因为参数first可能不是真正的数组,所以需要手动维护属性length的值。
第741行:返回改变后的参数first。
- jQuery.merge( first, second )
- $.merge(first,second) 数组合并
- C++ map first second
- [书摘]Polymorphism first, RTTI second
- First and Second Chance Exception
- hdu3706 Second My Problem First
- HDU3706-Second My Problem First
- Second My Problem First HDU
- First chance exception 与 Second chance exception
- 深入浅出 First chance, second chance和ExceptionPort
- First chance exception 与 Second chance exception
- First-countable space and Second-countable space
- QWidget::setTabOrder ( QWidget * first, QWidget * second)
- hdu 3706 Second My Problem First
- HDU 3706 Second My Problem First
- HDU - 3706 Second My Problem First
- jquery 选择器 .first()和:first
- Get a first life in the second one
- nyoj VF 269 (DP)求数字和的个数
- 生活态度
- xcrun: error: active developer path ("/Users/apple/Desktop/Xcode5.app/Contents/Developer") does not
- 关于Eclipse 插件添加右键菜单的三种方法
- mesos与yarn简要介绍
- jQuery.merge( first, second )
- 构造函数、析构函数、虚析构函数、纯虚析构函数要点总结
- 数据库_MySQL_MySQL中的begin-end流程控制语句与局部变量
- Apache Karaf自定义console命令
- http://blog.sina.com.cn/s/blog_7ed3ed3d01018pbd.html
- 创建真机调试证书
- [译] 照片框架
- shell中的各种括号的使用方法
- Struts2中DMI(动态方法调用)的一些问题