【问题标题】:How do I loop through two arrays and to return a single array with values in order? [duplicate]如何循环遍历两个数组并按顺序返回具有值的单个数组? [复制]
【发布时间】:2021-06-18 13:56:32
【问题描述】:

这是一个愚蠢的问题,但我很难弄清楚这一点。

假设我有两个数组:

let a = ["I", "a"]
let b = ["have", "cat"]

我想遍历它们,这样我的输出将是一个数组,变成:

let c = ["I", "have", "a", "cat"]

我试图做一个嵌套的 for 循环,但是我得到了一堆奇怪的错误。我也在尝试 forEach 但我收到一条错误消息,说我的数组未定义...所以不知道该怎么做。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    一种快速的方法是将数组a 映射到,因此:

    [a1,a2] ===> [[a1,b1], [a2,b2]]
    

    然后将生成的数组展平以产生:

    [a1,b1,a2,b2]
    

    演示

    let a = ["I", "a"]
    let b = ["have", "cat"]
    let c = [].concat(...a.map((e,i) => [e, b[i]]));
    console.log( c ); // ["I", "have", "a", "cat"]

    【讨论】:

    • 谢谢!这能够解决我的问题。但是,您能解释一下为什么将扩展运算符用于 a 数组吗?我很难理解为什么扩展运算符本质上是扁平化数组并为我们节省了一步
    • 扩展运算符将[[a1,b1], [a2,b2]] 更改为[a1,b1,a2,b2],基本上将数组的数组展平。有几种方法可以使数组变平;这只是众多之一。
    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2012-09-29
    • 2012-03-10
    • 2011-08-21
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多