首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使垂直数组在js中水平(discord.js)

使垂直数组在js中水平(discord.js)
EN

Stack Overflow用户
提问于 2020-07-19 01:21:04
回答 3查看 213关注 0票数 0

我想让一个垂直数组在discord.js中成为一个垂直数组这应该是水平发送区域字母的文本,但它是垂直发送的。我检查了stackoverflow,但我没有找到任何关于我想做的事情,所以如果你能帮我解决这个问题,那就太好了。

下面是我的代码:

代码语言:javascript
复制
var Letters = {
    a:":regional_indicator_a:", 
    b:":regional_indicator_b:", 
    c:":regional_indicator_c:",
    d:":regional_indicator_d:",
    e:":regional_indicator_e:",
    f:":regional_indicator_f:",
    g:":regional_indicator_g:",
    h:":regional_indicator_h:",
    i:":regional_indicator_i:",
    j:":regional_indicator_j:",
    k:":regional_indicator_k:",
    l:":regional_indicator_l:",
    m:":regional_indicator_m:",
    n:":regional_indicator_n:",
    o:":regional_indicator_o:",
    p:":regional_indicator_p:",
    q:":regional_indicator_q:",
    r:":regional_indicator_r:",
    s:":regional_indicator_s:",
    t:":regional_indicator_t:",
    u:":regional_indicator_u:",
    v:":regional_indicator_v:",
    w:":regional_indicator_w:",
    x:":regional_indicator_x:",
    y:":regional_indicator_y:",
    z:":regional_indicator_z:"
};

let args = message.content.split(" ").slice(1);
let data = args.slice(0).join(" ");
var chars = data.split('');
function getRegional(letter){
    if(letter === "a" || letter === "A"){ return Letters.a; } 
    if(letter === "b" || letter === "B"){ return Letters.b; }
    if(letter === "c" || letter === "C"){ return Letters.c; }
    if(letter === "d" || letter === "D"){ return Letters.d; }
    if(letter === "e" || letter === "E"){ return Letters.e; }
    if(letter === "f" || letter === "F"){ return Letters.f; }
    if(letter === "g" || letter === "G"){ return Letters.g; }
    if(letter === "h" || letter === "H"){ return Letters.h; }
    if(letter === "i" || letter === "I"){ return Letters.i; }
    if(letter === "j" || letter === "J"){ return Letters.j; }
    if(letter === "k" || letter === "K"){ return Letters.k; }
    if(letter === "l" || letter === "L"){ return Letters.l; }
    if(letter === "m" || letter === "M"){ return Letters.m; }
    if(letter === "n" || letter === "N"){ return Letters.n; }
    if(letter === "o" || letter === "O"){ return Letters.o; }
    if(letter === "p" || letter === "P"){ return Letters.p; }
    if(letter === "q" || letter === "Q"){ return Letters.q; }
    if(letter === "r" || letter === "R"){ return Letters.r; }
    if(letter === "s" || letter === "S"){ return Letters.s; }
    if(letter === "t" || letter === "T"){ return Letters.t; }
    if(letter === "u" || letter === "U"){ return Letters.u; }
    if(letter === "v" || letter === "V"){ return Letters.v; }
    if(letter === "w" || letter === "W"){ return Letters.w; }
    if(letter === "x" || letter === "X"){ return Letters.x; }
    if(letter === "y" || letter === "Y"){ return Letters.y; }
    if(letter === "z" || letter === "Z"){ return Letters.z; }
    if(letter === " "){ return ' '; }
}

var LettersToSend = [];

chars.forEach(element => {
    console.log('Lettre: ' + element)
    console.log('Regional letter: ' + getRegional(element))
    LettersToSend.push(getRegional(element));  
});

下面是输出:

我希望你能帮助我。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-07-19 10:51:04

这段代码应该可以为您工作。

代码语言:javascript
复制
function exec(message) {
    var hash = {
        a: ":regional_indicator_a:",
        b: ":regional_indicator_b:",
        c: ":regional_indicator_c:",
        d: ":regional_indicator_d:",
        e: ":regional_indicator_e:",
        f: ":regional_indicator_f:",
        g: ":regional_indicator_g:",
        h: ":regional_indicator_h:",
        i: ":regional_indicator_i:",
        j: ":regional_indicator_j:",
        k: ":regional_indicator_k:",
        l: ":regional_indicator_l:",
        m: ":regional_indicator_m:",
        n: ":regional_indicator_n:",
        o: ":regional_indicator_o:",
        p: ":regional_indicator_p:",
        q: ":regional_indicator_q:",
        r: ":regional_indicator_r:",
        s: ":regional_indicator_s:",
        t: ":regional_indicator_t:",
        u: ":regional_indicator_u:",
        v: ":regional_indicator_v:",
        w: ":regional_indicator_w:",
        x: ":regional_indicator_x:",
        y: ":regional_indicator_y:",
        z: ":regional_indicator_z:"
    };


    var msg = "";
    var letters = args.join(" ");


    function getRegional(letter) {
        return (letter === " " ? " " : hash[letter])
    }

    for (i = 0; i < letters.length; i++) {
        msg += getRegional(letters[i])
    }

    console.log(msg)
}

let msg = {
    content: '!regional two three'
}

let [command, ...args] = msg.content.slice(1).split(/\s+/g)

exec(args)

运行这段代码会为我返回以下代码(我假设这就是您想要的)

代码语言:javascript
复制
:regional_indicator_t::regional_indicator_w::regional_indicator_o: :regional_indicator_t::regional_indicator_h::regional_indicator_r::regional_indicator_e::regional_indicator_e:
票数 0
EN

Stack Overflow用户

发布于 2020-07-19 23:55:11

以下是您的代码的优化版本,应该会给出正确的结果。

任何不是字母的字符都将替换为空格。

代码语言:javascript
复制
let args = message.content.split(' ').slice(1);
let data = args.slice(0).join(' ');
let chars = data.split('');

function getRegional(letter) {
    return (!/^[a-zA-Z]$/g.test(letter))? '          ' :
        `:regional_indicator_${ letter.toLowerCase() }:`;
}

let lettersToSend = [];
lettersToSend = chars.map(element => {
    console.log('Letter: ' + element);
    console.log('Regional letter: ' + getRegional(element));
    return getRegional(element);  
});

message.channel.send(lettersToSend.join(' '));
票数 0
EN

Stack Overflow用户

发布于 2020-07-20 00:06:05

嗯,你可以只检查属性,而不是做那么多的ifvariable.property也可以写成variable['propery'],不同之处在于你可以添加变量。因此,在getRegional(letter)中,您可以检查您传递的属性。if(!Letters[letter]) return ' ';。然后对属性执行return操作。

代码语言:javascript
复制
var Letters = {
    a: ":regional_indicator_a:",
    b: ":regional_indicator_b:",
    c: ":regional_indicator_c:",
    d: ":regional_indicator_d:",
    e: ":regional_indicator_e:",
    f: ":regional_indicator_f:",
    g: ":regional_indicator_g:",
    h: ":regional_indicator_h:",
    i: ":regional_indicator_i:",
    j: ":regional_indicator_j:",
    k: ":regional_indicator_k:",
    l: ":regional_indicator_l:",
    m: ":regional_indicator_m:",
    n: ":regional_indicator_n:",
    o: ":regional_indicator_o:",
    p: ":regional_indicator_p:",
    q: ":regional_indicator_q:",
    r: ":regional_indicator_r:",
    s: ":regional_indicator_s:",
    t: ":regional_indicator_t:",
    u: ":regional_indicator_u:",
    v: ":regional_indicator_v:",
    w: ":regional_indicator_w:",
    x: ":regional_indicator_x:",
    y: ":regional_indicator_y:",
    z: ":regional_indicator_z:"
};

let args = message.content.split(" ").slice(1);
let data = args.slice(0).join(" ");
var chars = data.split('');

function getRegional(letter) {
    if(!Letters[letter.toLowerCase()]) return ' '; // If property doesn't exist return ''
    return Letters[letter.toLowerCase()];          // If it does, return it.
}

var LettersToSend = [];

chars.forEach(element => {
    console.log('Lettre: ' + element)
    console.log('Regional letter: ' + getRegional(element))
    LettersToSend.push(getRegional(element));
});
message.channel.send(LettersToSend.join('')); // Send it in a single String.

希望这段代码能帮上忙,让它变得更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62971510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档