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 及更高版本也可以。
您必须至少循环一次 - 没有其他选择。这是可能的解决方案之一:
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(),必须拉伸数组,这需要时间。在第三个示例中,您已经拥有一个大小合适的数组,您只需修改其条目。
总是会窃取时间的是字符串连接。您可以通过用简单的加法(作为数字)替换字符串连接来使用我的解决方案,您会发现它使操作更快。我希望它能对你的问题有所了解。
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |