javascript 我需要嵌套数组连接/追加操作概念方面的帮助

yv5phkfx  于 2023-01-04  发布在  Java
关注(0)|答案(2)|浏览(122)

我有三个数组H E和F。

const H = [
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
    [$, _, _, _, _, _, _, $,],
]

const E = [
    [$, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, $, $, $, $, $, $, $,],
]

const F = [
    [$, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, _,],
  ];

我想要以下输出:H E F,即:

[
    [$, _, _, _, _, _, _, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $, $,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, _, _, _, _, _, _, _, $, _, _, _, _, _, _, _,],
    [$, _, _, _, _, _, _, $, $, $, $, $, $, $, $, $, $, _, _, _, _, _, _, _,],
]

基本上,我想合并HEF从H,E,F。任何解决方案通过循环或可能如果lodash提供此功能?因为这是数组中数组我开放给循环解决方案和任何lodash或可能如果任何javascript库提供此功能,然后让我知道。

cxfofazt

cxfofazt1#

看起来您只需要将concat分别应用于每一行:

a = [
    ['a','b','c'],
    ['d','e','f'],
]
b = [
    ['g','h'],
    ['i','j'],
]
c = [
    ['k', 'l'],
    ['m', 'n'],
]

let glue = args => args[0].map(
    (_, i) => [].concat(
        ...args.map(a => a[i])))

result = glue([a, b, c])

console.log(result)
p8h8hvxi

p8h8hvxi2#

你可以用一个对象来表示字母和Map行。

const
    getText = (text, data) => Array
        .from(text)
        .reduce((r, c) => data[c].map((a, i) => [...r[i] || [], ...a]), []),
    _ = '_',
    $ = '$',
    H = [[$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, $, $, $, $, $, $, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $], [$, _, _, _, _, _, _, $]],
    E = [[$, $, $, $, $, $, $, $], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, $, $, $, $, $, $, $], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, $, $, $, $, $, $, $]],
    F = [[$, $, $, $, $, $, $, $], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, $, $, $, $, $, $, $], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _], [$, _, _, _, _, _, _, _]];
    
getText('HEF', { E, F, H }).map(a => console.log(...a));
.as-console-wrapper { max-height: 100% !important; top: 0; }

相关问题