node.js tmi.js twitch 机器人对象返回 [object, Object]

node.js tmi.js twitch bot Object Returning [object, Object]

我正在使用 node.js 和 tmi.js 为 twitch 机器人制作游戏。我有一个动态数组(votePlayers),它根据机器人读取的 twitch 聊天中的传入消息改变每一轮。然后我必须为每次出现在这个数组中的项目设置一个计数器,所以我使用下面的方法来这样做,这是有效的,当我控制台记录数据保存到的对象时,一切看起来都很好,但是当我尝试return 它作为从机器人到 twitch 聊天的消息,它 returns [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();
}

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(", ")}`);

应该可以