【发布时间】:2020-01-02 12:17:31
【问题描述】:
我想知道是否有更聪明的方法 1)声明两个数组,尤其是数字一(可能使用点运算符?),和 2) 将这两个数组的字符串元素组合成第三个,而不使用老式的 for 循环,可能使用 Array.map() 或 Array.from()?
const letters=['a', 'b', 'c', 'd']
const numbers=[1, 2, 3, 4, 5, 6]
const combined=[]
for (let i=0; i < letters.length; i++)
{
for (let j=0; j < numbers.length; j++)
{
combined.push(letters[i] + numbers[j]);
}
}
// output a1, a2, a3, a4, a5, a6, b1...
【问题讨论】:
-
这对我来说看起来非常好(除了
new Array部分,以及隐含的全局i和js)。我认为没有任何其他方法比你目前正在做的更有效。我更喜欢forEach或for..of而不是for,但这是一个微不足道的改进 -
@CertainPerformance 他们的全球化程度如何?对不起初学者的问题,我只是想知道为什么我应该使用其他迭代器变量名?你能否详细说明为什么我不应该使用 new 而不是 var letters=["a", "b", "c", "d"];谢谢!
-
@CertainPerformance “更智能的方式”是否意味着“更高的性能”?我认为他只是在寻找一种“更聪明”的方法,如果我们可以在这里谈论“更聪明”,因为它意味着阅读一行代码左右。
-
letters和numbers数组是输入的一部分,还是您也想动态创建它们? -
您的代码有效,找到“更优雅”的方式只是一个基于意见的问题。
标签: javascript arrays dictionary for-loop element