首页 > 代码库 > js中array的join和concat的区别

js中array的join和concat的区别

首先:concat方法
定义:
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
举例说明:

1 /*concat()结果返回的是一个数组*/
2
3 var arr = new Array(3)
4 arr[0] = "George"
5 arr[1] = "John"
6 arr[2] = "Thomas"
7
8 var arr2 = new Array(3)
9 arr2[0] = "James"
10 arr2[1] = "Adrew"
11 arr2[2] = "Martin"
12
13 document.write(arr.concat(arr2))
14
15
16 //result:
17 George,John,Thomas,James,Adrew,Martin

join方法:
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
举例说明:

1 /*join()返回的是一个字符串*/
2 var arr = new Array(3);
3 arr[0] = "George"
4 arr[1] = "John"
5 arr[2] = "Thomas"
6
7 document.write(arr.join());
8
9 document.write("<br />");
10
11 document.write(arr.join("."));
12 //result:
13 George,John,Thomas
14 George.John.Thomas

slice方法:
返回一个数组的一段。(仍为数组)
arrayObj.slice(start, [end])
参数
arrayObj
必选项。一个 Array 对象。
start
必选项。arrayObj 中所指定的部分的开始元素是从零开始计算的下标。
end
可选项。arrayObj 中所指定的部分的结束元素是从零开始计算的下标。
说明
slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。
slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。
示例
在下面这个例子中,除了最后一个元素之外,myArray 中所有的元素都被复制到 newArray 中:
newArray = myArray.slice(0, -1)
二维数组的定义方法:
  方式一:var arr = [[a,b,c,d],[a1,b1,c1,d1],[a2,b2,c2,d2]],
  方式二: var arr = new Array([a,b,c,d],[a1,b1,c1,d1],[a2,b2,c2,d2]),

js中array的join和concat的区别