当前位置: 首页 > 面试题库 >

连接N个数组的最有效方法是什么?

桓深
2023-03-14
问题内容

在JavaScript中串联N个对象数组的最有效方法是什么?

数组是可变的,结果可以存储在输入数组之一中。


问题答案:

如果要连接两个以上的数组,concat()那么这样做是为了方便和可能的性能。

var a = [1, 2], b = ["x", "y"], c = [true, false];
var d = a.concat(b, c);
console.log(d); // [1, 2, "x", "y", true, false];

对于仅连接两个数组,可以使用push接受多个包含要添加到数组中的元素的参数的事实来代替将一个数组中的元素添加到另一个数组的末尾而不产生新数组。使用slice()它也可以代替它,concat()但是这样做似乎没有性能优势。

var a = [1, 2], b = ["x", "y"];
a.push.apply(a, b);
console.log(a); // [1, 2, "x", "y"];

在ECMAScript 2015及更高版本中,这可以进一步减少到

a.push(...b)

但是,似乎对于大型数组(成员数为100,000或更多),将元素数组传递给push(使用apply()或ECMAScript
2015扩展运算符)的技术可能会失败。对于此类阵列,使用循环是一种更好的方法。。



 类似资料:
  • 我需要从Python 2.7中的对象列表中删除前n个元素。有没有一种不使用循环的简单方法?

  • 问题内容: 用Java连接两个String的最快方法是什么? 即 我在中使用它作为键,并且在一个非常紧密的循环中调用它来检索值。 当我分析时,这就是瓶颈 问题答案: 这些例程出现在基准测试中的原因是因为这是编译器在幕后实施“ +”的方式。 如果您确实需要连接的字符串,则应让编译器以“ +”号表示神奇。如果你都需要对地图查找一个键,一键类控股与合适的两个字符串,并因为它避免了复制步骤的实现可能是一个

  • 问题内容: 我有一个非常大的NumPy数组 我想检查数组的第一列中是否存在一个值。我有很多本地方法(例如遍历每一行并进行检查),但是鉴于数组的大小,我想找到最有效的方法。 谢谢! 问题答案: 怎么样 编辑:我认为以与@detly版本相同的方式实现

  • 问题内容: 信不信由你,在分析当前代码后,numpy数组还原的重复操作将占用大量的运行时间。我现在拥有的是基于视图的常见方法: 还有其他方法可以更有效地执行此操作,还是我对不切实际的numpy性能的痴迷所致的幻觉? 问题答案: 创建时,您正在创建原始数组的视图。然后,您可以更改原始数组,并且视图将更新以反映所做的更改。 您是否经常需要重新创建视图?您应该能够执行以下操作: 我不是numpy专家,但

  • 我必须找到每个数组元素的第N个nextInt。下面的代码真的很慢,因为数组元素超过40K,每个数组元素超过100万。 有没有更快的方法得到第100万个Nextint?如果是,请怎么做?

  • 问题内容: 在JavaScript中,我有一个包含许多迭代的循环,并且在每个迭代中,我正在创建一个包含许多运算符的巨大字符串。有没有更有效的方式来创建字符串?我正在考虑创建一个动态数组,在该数组中不断向其中添加字符串,然后进行联接。谁能解释并举例说明最快的方法吗? 问题答案: 基于JSPerf的基准测试,似乎是使用最快的方法,尽管不一定在每个浏览器中都使用。 为了在DOM中构建字符串,最好先将字符