为了账号安全,请及时绑定邮箱和手机立即绑定

如何连接javascript数组

如何连接javascript数组

守着星空守着你 2022-05-14 14:34:03
let A = ["u23", "c35",-----so on]; let B = ["123", "234", ---- so on];a 和 b 索引计数均为 100 且相同预期产出C = ["u23,123", "c35,234", ---- so on];我需要在不使用 for 循环的复杂步骤的情况下以很少的步骤实现输出。ECMAScript 6 及更高版本也可以。
查看完整描述

2 回答

?
ABOUTYOU

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(),必须拉伸数组,这需要时间。在第三个示例中,您已经有了一个大小合适的数组,您只需修改它的条目。


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


查看完整回答
反对 回复 2022-05-14
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

let newArr =[];

A.forEach((el, index)=> {

  newArr.push(el);

  newArr.push(B[index]);

}

newArr 现在是您需要的格式。


查看完整回答
反对 回复 2022-05-14
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号