在 JS 中,如果要将一个数组合并到另一个数组,通常会用到如下方法:
const arr1 = ["a", "b"];
const arr2 = [1, 2];
const arr = [...arr1, ...arr2];
// or
const arr = arr1.concat(arr2);
// or
const arr = arr1.push(...arr2);
今天看到了一个方法,使用 apply
:
const arr = [].push.apply(arr1, arr2);
由于 apply
方法接收两个参数,一个是要绑定的对象,第二个是函数的参数。由于 apply
是将函数的参数装在一个数组里面传递,而我们传的刚好就是数组,相当于进行了扁平化,思路非常巧妙。在一些需要数组扁平化的场景,除了使用扩展运算符或者 concat
,也可以试试 apply
方法。