【问题标题】:node.js tmi.js twitch bot Object Returning [object, Object]node.js tmi.js twitch bot 对象返回 [object, Object]
【发布时间】:2021-08-11 13:57:25
【问题描述】:

我正在使用 node.js 和 tmi.js 为 twitch 机器人制作游戏。我有一个动态数组(votePlayers),它根据机器人读取的 twitch 聊天中的传入消息更改每一轮。然后,每次一个项目出现在这个数组中时,我都必须有一个计数器,所以我使用下面的方法来做到这一点,这很有效,当我控制台记录数据保存到的对象时,一切看起来都很好,但是当我尝试要将其作为消息从机器人返回到 twitch 聊天,它会返回 [object, Object],尽管已正确打印到控制台。我不知道出了什么问题以及我能做什么。

//calculate function 
function calculateWinner () {
    let roundCount = {};
    votePlayers.forEach(function(i) { roundCount[i] = (roundCount[i]||0) + 1;});
    console.log(roundCount);
    client.say(channel, `The votes for this round are: ${roundCount}`);
    newRound();
}

【问题讨论】:

    标签: javascript node.js object twitch


    【解决方案1】:

    client.say 需要一个字符串作为第二个参数,但你传递的是一个对象,这就是你得到 [object Object] 的原因。

    首先将您的对象转换为字符串: 即

    roundCount = {};
    roundCount[1] = 5;
    roundCount["2"] = 3;
    
    console.log(Object.keys(roundCount).map(key => `${key}: ${roundCount[key]}`).join(", "));
    

    然后调用

    client.say(channel, `The votes for this round are: ${Object.keys(roundCount).map(key => `${key}: ${roundCount[key]}`).join(", ")}`);
    

    应该工作

    【讨论】:

    • 您先生,是一位绅士和一位学者。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 2017-12-30
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多