js不改变数组长度的方法

211 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、concat()

  用于连接两个或多个数组,仅会返回被连接数组的一个副本,arrayObject.concat(arrayX,arrayX,……,arrayX) 。

例子 1

在本例中,我们将把 concat() 中的参数连接到数组 a 中:

<script type="text/javascript">
​
var a = [1,2,3];
document.write(a.concat(4,5));
​
</script>

输出:

1,2,3,4,5

例子 2

在本例中,我们创建了两个数组,然后使用 concat() 把它们连接起来:

<script type="text/javascript">var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"document.write(arr.concat(arr2))
​
</script>

输出:

George,John,Thomas,James,Adrew,Martin

例子 3

在本例中,我们创建了三个数组,然后使用 concat() 把它们连接起来:

<script type="text/javascript">var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"document.write(arr.concat(arr2,arr3))
​
</script>

输出:

George,John,Thomas,James,Adrew,Martin,William,Franklin

2、join()

  返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,arrayObject.join(separator) 。 元素是通过指定的分隔符进行分隔的。

大白话:join方法可以用符不同的分隔符来构建这个字串。join方法值接受一个参数,即用作分隔符的字符串,然后返回所有数组项的字符串。

var arr = ["red","yellow","blue"]; var array = []; 下面开始调用join方法

1

array = arr.join(undefined); console.log(array); 输出结果为: red,yellow,blue。

因为join方法的参数不传或者传入undefined会默认用逗号分隔。

2

array = arr.join("|"); console.log(array); 输出结果为: red|yellow|blue。

join参数用是用"|"来分隔的

3

array = arr.join(" | "); console.log(array); 输出结果为: red | yellow | blue。

join参数使用" | "来分隔的,字符串是什么就用什么来分隔。

4

console.log(Array.isArray(array)); console.log(typeof array); 输出结果为:false String

如果用join来分隔数组的话,这个变量就会变成字符串类型,就算之前是数组也会变成字符串类型。 3、slice()

  arrayObject.slice(start,end)返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

4、JSON.parse(JSON.stringify(arry))

  这种方式会重新复制一个数组。也是实现深拷贝的一种方式。