如何连接javascript数组

Rat*_*mar 0 javascript ecmascript-6

let A = ["u23", "c35",-----so on];

let B = ["123", "234", ---- so on];
Run Code Online (Sandbox Code Playgroud)

a 和 b 索引计数都是 100 并且相同

预期输出C = ["u23,123", "c35,234", ---- so on]

我需要在不使用复杂的 for 循环步骤的情况下以很少的步骤实现输出。

ECMAScript 6 及更高版本也可以。

Seb*_*rek 6

您必须至少循环一次 - 没有其他选择。这是可能的解决方案之一:

let A = ["u23", "c35", "d34"];
let B = ["123", "234", "345"];

let C = A.map((el, i) => el + "," + B[i]);
console.log(C);
Run Code Online (Sandbox Code Playgroud)

可以通过使用标准来改进上述解决方案for-loop

let C = [];
for (let i = 0; i < 1e6; i++){
  C.push(A[i] + "," + B[i]);
}
Run Code Online (Sandbox Code Playgroud)

您可以通过修改输入数组之一而不是创建新数组来进一步改进它:

for (let i = 0; i < 1e6; i++){
  A[i] += "," + B[i];
}
Run Code Online (Sandbox Code Playgroud)

您可以在我在这里创建的 repl 中比较上述三个中的每一个的性能

运行几次后,您会注意到最后一种方法是最快的。这是因为在第二个示例中C创建了一个新数组,它的长度为0. 对于 each .push(),必须拉伸数组,这需要时间。在第三个示例中,您已经拥有一个大小合适的数组,您只需修改其条目。

总是会窃取时间的是字符串连接。您可以通过用简单的加法(作为数字)替换字符串连接来使用我的解决方案,您会发现它使操作更快。我希望它能对你的问题有所了解。