2 回答

TA贡献1812条经验 获得超5个赞
您必须至少循环一次 - 没有其他选择。这是可能的解决方案之一:
let A = ["u23", "c35", "d34"];
let B = ["123", "234", "345"];
let C = A.map((el, i) => el + "," + B[i]);
console.log(C);
可以通过使用标准来改进上述解决方案for-loop:
let C = [];
for (let i = 0; i < 1e6; i++){
C.push(A[i] + "," + B[i]);
}
您可以通过修改其中一个输入数组而不是创建新数组来进一步改进它:
for (let i = 0; i < 1e6; i++){
A[i] += "," + B[i];
}
您可以在我在这里创建的 repl 中比较上述三个中的每一个的性能。
运行几次后,您会注意到最后一种方法是最快的。这是因为在第二个示例中C创建了一个新数组,它的长度为0. 对于 every .push(),必须拉伸数组,这需要时间。在第三个示例中,您已经有了一个大小合适的数组,您只需修改它的条目。
总是会占用时间的是字符串连接。您可以通过用简单的加法(作为数字)替换字符串连接来使用我的解决方案,您会发现它使操作更快。我希望它对您的问题有所帮助。

TA贡献1998条经验 获得超6个赞
let newArr =[];
A.forEach((el, index)=> {
newArr.push(el);
newArr.push(B[index]);
}
newArr 现在是您需要的格式。
添加回答
举报