2017-10-14 91 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

相關問題