2017-10-14 59 views
-1

我正在为我的Discord bot创建一个雨函数,该函数会对聊天中最活跃的玩家降级。我使用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

我怎么能单独所有数组项映射回一个字符串

你可以只调用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(", ")); 
    }; 

只是要注意数组是保留字 - 你不应该命名变量数组。

+0

嘿弗雷泽。我试过Array.join(“,”);但这只会这样做 http:// prntscr.com/gx6uxy' 我没有把名字放在一起,但它仍然放置每行1个字符串。我需要它是1行上的所有数组项目 – Gyzimo

+0

我看不到那个SS,在任何情况下,这个问题与你不告诉我们的东西有关,因为像上面这样使用Join会产生一个没有换行符的字符串 - 即“每行仍然放置1个字符串”是不正确的 - 只有一个字符串,其他的东西将其分解成行。 – Fraser

+0

您可以在代码块中看到上面的代码,它是抓取数据库信息并将其推入Araay的唯一代码。没有更多的代码会与此交互。所以我不确定你的意思是“我不知道的东西”?文件完整文件本身是更长的是,但这些只是消息和如果(!..)语句。对我的问题不重要。在代码块中看到的代码是我正在使用的唯一代码。而我需要的条目为1个字符串。 Array.join()aint似乎适用于我。 – Gyzimo

相关问题