本文主要介绍JS合并两个数组的三种方法的详细说明,并通过示例代码进行详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
本文主要介绍JS合并两个数组的三种方法的详细说明,并通过示例代码进行详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
两个数字需要合并成一个的情况。例如:
var a=[1,2,3];
var b=[4,5,6];
有两个数组A和B,要求是把两个数合成一个。该方法如下:
1、concat
js的Array对象提供了一个名为concat()的方法来连接两个或多个数组并返回结果。
var c=a . concat(b);//c=[1,2,3,4,5,6];
这里有一个问题。concat方法连接两个数组A和B后,两个数组A和B的数据不会改变,同时返回一个新的数组。这样,当我们需要多次合并数组时,就会造成大量的内存浪费。如果数据量比较小,我们勉强可以用。如果数据量很大,这是不合适的,所以这种方法肯定不是最好的。
2.for循环
总体思路是遍历其中一个数组,将数组中的所有元素依次添加到另一个数组中。直接装载代码:
for(变量I在b中)
{
a . push(b[I]);
}
这种写法可以解决第一种方案的内存浪费,但是会有另外一个问题:难看!这么说也不是没有道理。如果只用一行代码就能搞定岂不是很快~
3、申请
函数的apply方法有一个特性,就是func.apply(obj,argv),argv是一个数组。因此,我们可以利用这一点,直接进入代码:
a.push.apply(a,b);
调用这个函数实例a.push的apply方法,将B作为参数传入,这样这个方法a.push就会遍历B数组的所有元素,达到合并的效果。
这里可能有点曲折。我们可以把B看作[4,5,6]它变成这样:
a.push.apply(a,[4,5,6]);
那么上述操作相当于:
a.push(4,5,6);
这一点很清楚!
此外,应该注意两个小问题:
1)上述三种合并方法都没有考虑A和B两个数组哪个长度更小。
所以提前判断A和B两个数组哪个更大,然后用大数组合并小数组,这样就减少了数组元素的运算次数,是个不错的办法!
2)有时候我们不希望原数组(A,B)改变,那么就只能用concat。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。