gpt4 book ai didi

javascript - JavaScript 数组的 Java `Collection.addAll` 是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:28:24 33 4
gpt4 key购买 nike

Java 集合有一个方法可以添加另一个集合的所有元素:addAll(Collection other) .

javascript 数组的就地追加相当于做什么?

我们不能使用 Array.concat ,因为它创建了一个新数组并保持原始数组不变。

所以,给定两个数组,如何将 ba,如何将 b 的所有元素附加到 a 到位(因此 c 也改变了!):

var a = [1, 2, 3];
var b = ['foo', 'bar'];
var c = a;
// a.addAll(b);
// so that `c` equals to [1, 2, 3, 'foo', 'bar']

最佳答案

您可以使用Array.prototype.push()apply 方法:

var a = [1, 2, 3];
var b = ['foo', 'bar'];
Array.prototype.push.apply(a, b);
console.log(a); // Array [ 1, 2, 3, "foo", "bar" ]

或者:

a.push.apply(a, b);
[].push.apply(a, b);

如果您使用的是 ES6,最好使用 the spread operator ... 调用 .push()反而。这更类似于 Collection.addAll(...) 因为您可以从任何 iterable object 添加值,不仅仅是数组。它还允许您一次添加多个可迭代对象。

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" ]

关于javascript - JavaScript 数组的 Java `Collection.addAll` 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658464/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com