将所有数组条目映射到一个字符串

时间:2017-10-14 01:17:45

标签: javascript arrays

我正在为我的Discord机器人创建一个降雨功能,为聊天中最活跃的玩家降低积分。我正在使用each()语句,因此我可以为数据库中的每个人分配信用额度。

现在我想要的是在下雨结束时,一条消息出现在与所有获奖者名字的聊天中,但我唯一得到的是机器人在聊天中分别显示每个名字。

如何将所有单独的数组条目映射回一个字符串/消息,如下所示。

姓名,姓名,姓名
名称,名称,名称,名称

这是我正在处理的代码。

PLACE = args[0];
AMOUNT = args[1];
COUNT = args[2];

async function MakeSomeMagic() {
await DB.each(`SELECT * FROM Wallet WHERE GuildID = ${G.id} AND UserID NOT IN(${A.id}) ORDER BY ${PLACE} DESC LIMIT ${COUNT}`, function(err, R) {

  var Index;
  var Array = [];

  Array.push({Name: `${R.UserName}`})
  for (Index = 0; Index < Array.length; ++Index) {

    var x = parseFloat(AMOUNT).toFixed(3);
    var y = parseFloat(COUNT);
    var Calc = x / y;
    var END = R.Balance + Calc;

    DB.run(`UPDATE Wallet SET Balance = ?, Activity = '${Time}' WHERE UserID = ? AND GuildID = ?`, [END, R.UserID, G.id]);
  }
});

};

1 个答案:

答案 0 :(得分:1)

  

如何将所有单独的数组条目映射回一个字符串

你可以在数组上调用join,并以逗号作为分隔符。即。

var mystring = Array.join(", ")

修改

async function MakeSomeMagic() {
    var arr= [];
    await DB.each(`SELECT * FROM Wallet WHERE GuildID = ${G.id} AND UserID NOT IN(${A.id}) ORDER BY ${PLACE} DESC LIMIT ${COUNT}`, function(err, R) {
            var Index;
            arr.push({
                Name: `${R.UserName}`
            })
            for (Index = 0; Index < arr.length; ++Index) {

                var x = parseFloat(AMOUNT).toFixed(3);
                var y = parseFloat(COUNT);
                var Calc = x / y;
                var END = R.Balance + Calc;

                DB.run(`UPDATE Wallet SET Balance = ?, Activity = '${Time}' WHERE UserID = ? AND GuildID = ?`, [END, R.UserID, G.id]);
            }

            });

            C.send(arr.join(", "));
    };

请注意,Array是一个保留字 - 您不应该命名变量Array。