如题:
jQuery 的 $.merge( , ) 和 js 的concat() 是一样的吧,区别在哪里呢?
认证0级讲师
$.merge() 和 concat() 都是用來合併兩個數組,但最大的差別在
$.merge()
concat()
$.merge() 是把第二個數組,合併進去第一個,是破壞性的,第一個數組內容會被修改
var arr1 = [1, 2] var arr2 = [3, 4] $.merge([1, 2], [3, 4]) // arr1 = [1, 2, 3, 4]
concat() 則是合併後返回新數組,不會修改參數中的數組
var arr1 = [1, 2] var arr2 = [3, 4] var arr3 = arr1.concat(arr2) // arr1 = [1, 2] // arr2 = [3, 4] // arr3 = [1, 2, 3, 4]
$.merge([array1], [array2] )用于合并两个数组,无法规定连接符,合并以后的东西依然是数组(或者对象)
$.merge([array1], [array2] )
Array.prototype.join用于把数组中的多个元素合并,可以规定连接符,合并以后的东西是字符串。
Array.prototype.join
var arr = [1,2,3],str = 'abc'; var concat = [].concat.call(arr,str); console.log(concat); console.log(arr); var merge = $.merge(arr, str); console.log(merge); console.log(arr);
$.merge()
和concat()
都是用來合併兩個數組,但最大的差別在$.merge()
是把第二個數組,合併進去第一個,是破壞性的,第一個數組內容會被修改concat()
則是合併後返回新數組,不會修改參數中的數組$.merge([array1], [array2] )
用于合并两个数组,无法规定连接符,合并以后的东西依然是数组(或者对象)Array.prototype.join
用于把数组中的多个元素合并,可以规定连接符,合并以后的东西是字符串。