我们在项目过程中,将两个数组合并成为一个
例如:
vara=[ 1,2,3 ] varb=[ 4,5,6 ]; 有两个排列a、b。 需求是将两个数组合在一起。 方法如下。
1、concat
js的Array对象提供了一个名为concat ()的方法,用于连接两个或多个数组并返回结果。
varc=a.concat(b ); //c=[ 1,2,3,4,5,6 ]
这里有问题。 如果concat方法连接a和b两个数组,则a和b两个数组中的数据不会更改,同时返回新数组。 如果需要多次合并数组,则这种方法可能不是最好的,因为这会浪费很大的内存。
2、for循环
的想法是遍历一个数组,将该数组中的所有元素依次添加到另一个数组中。 直接上传代码:
for(varIinb ) a.push ) b[I]; }这样的写法可以解决第一种方案的内存浪费,但还有一个问题:丑陋! 这么说并不是没有道理,如果能用一行代码就能搞定的话,岂不是快哉~
3、apply
函数的apply方法具有func.apply(obj,argv )特性,argv是数组。 您可以利用它直接访问代码:
a.push.apply(a,b ); console.log(a.push.apply(a(a,b )=)、a.push.apply,b ) ) /此处为boolean值trueorfalseconsole.log ) )
这里可能有点绕远,但如果把b想成[ 4,5,6 ],就会变成。
a.push.apply(a,[ 4,5,6 ] ); 然后,上面的操作与下面的操作相同。
a.push (4,5,6 ); 这样就清楚了!
另外,还要注意两个小问题:
1 )以上3种合并方法没有考虑a、b的2个排列哪个长度小。
因此,可以事先判断a、b这两个数组哪个更大,使用较大的数组合并较小的数组,从而减少数组元素的操作次数
2 )您可能不想改变原始序列(a,b )。 在那种情况下,只能用concat。
根据以上内容,http://www.cn blogs.com/being-a-runner-up/p/5627166.html
以下是用ES6合并数组的写法1。 扩展运算符提供了数组合并的新写法。
formates6concat arr ({ letarr1=[ ' a ',' b'] let arr2=['c ',' c ' ] ) let arr3=[ ' d ',' e'] //ES5的结合数组//. arr3]console.log('arr4=',arr4)//[ 'a ',' b ',consta1=[ { foo : ] ] const a2=[ { bar : ] ] const . A2 )对于console.log(A3[0]==A1[0] )/trueconsole.log ) A4[0]==A1[0](/true )上的代码,a3和a4使用两种类型