jQuery.merge与concat的区别
示例如下:
s1="123"; s2="145"; s3 = $.merge(s1,s2);//s3="123",字符串s1 s2不变,默认返回s1 s4 = s1.concat(s2);//s4="123145" a1=[1,2,3]; a2=[1,4,5]; a3 = $.merge(a1,a2);//a1=[1,2,3,1,4,5], a3=[1,2,3,1,4,5] 向a1里合并 a4 = s1.concat(s2);//a4=[[1, 2, 3, 1, 4, 5, 1, 4, 5], a1还是[1,2,3,1,4,5]
其中merge方法
描述: 合并两个数组内容到第一个数组。
-
添加的版本: 1.0jQuery.merge( first, second )
-
first类型: ArrayLikeObject第一个用于合并的数组,其中将会包含合并后的第二个数组的内容。
-
second类型: ArrayLikeObject第二个用于合并的数组,该数组不会被修改,其中的内容将会被合并到第一个数组中。
-
$.merge()
操作形成一个数组,其中包含两个数组的所有元素。追加到第一个数组中的第二个数组元素的顺序会被保留。
$.merge()
函数是破坏性的。它会修改第一个数组的内容,并将第二个数组的内容添加到第一个数组中。
如果您需要保留原始的第一个数组,请在调用$.merge()
前拷贝一个出来。幸运的是, $.merge()
本身也可以用于拷贝操作:
1
|
var newArray = $.merge([], oldArray); |
此快捷方式创建一个新的,空数组合并了oldArray的内容,有效地克隆了数组。
JS代码测试如下:
例子:
Example: 合并两个数组,修改第一个参数的内容。
1
|
$.merge( [0,1,2], [2,3,4] ) |
Result:
1
|
[0,1,2,2,3,4] |
Example: 合并两个数组,修改第一个参数的内容。
1
|
$.merge( [3,2,1], [4,3,2] ) |
Result:
1
|
[3,2,1,4,3,2] |
Example: 合并两个数组,但是对第一个参数进行拷贝,这样就可以保证原始的内容不被修改。
1
2
3
|
var first = ['a','b','c']; var second = ['d','e','f']; $.merge( $.merge([],first), second); |
Result:
1
|
["a","b","c","d","e","f"] |