JavaScript数组的Java`Collection.addAll`等效于什么?

JavaScript数组的Java`Collection.addAll`等效于什么?,javascript,arrays,Javascript,Arrays,Java集合有一个方法来添加另一个集合的所有元素: javascript数组的就地追加等价于什么 我们不能使用,因为它会创建一个新数组,而保留原始数组不变 因此,给定两个数组,如何将b添加到a,如何将b的所有元素添加到a中(因此c也会发生变化!): 您可以使用apply方法: 或者: a.push.apply(a, b); [].push.apply(a, b); 如果您使用的是ES6,最好使用调用.push()。这更类似于Collection.addAll(…),因为您可以从任何位置添加值,

Java集合有一个方法来添加另一个集合的所有元素:

javascript数组的就地追加等价于什么

我们不能使用,因为它会创建一个新数组,而保留原始数组不变

因此,给定两个数组,如何将
b
添加到
a
,如何将
b
的所有元素添加到
a
中(因此
c
也会发生变化!):


您可以使用
apply
方法:

或者:

a.push.apply(a, b);
[].push.apply(a, b);
如果您使用的是ES6,最好使用调用
.push()
。这更类似于
Collection.addAll(…)
,因为您可以从任何位置添加值,而不仅仅是数组。它还允许您一次添加多个iTerable

const a = [1, 2, 3];
const b = ['foo', 'bar'];
const c = new Set(['x', 'x', 'y', 'x']);
a.push(...b, ...c);
console.log(a); // Array [ 1, 2, 3, "foo", "bar", "x", "y" ]

@A.Wolff这是一个非常不同的操作——它扩展了现有的数组,创建了一个新的数组@Andy,要是madox2想到这一点就好了@杰里米银行我肯定会错过的something@Pointy,只是说它比较短。天哪。
a.push.apply(a, b);
[].push.apply(a, b);
const a = [1, 2, 3];
const b = ['foo', 'bar'];
const c = new Set(['x', 'x', 'y', 'x']);
a.push(...b, ...c);
console.log(a); // Array [ 1, 2, 3, "foo", "bar", "x", "y" ]