所以我是Node的新手,我确切地知道如何在PHP中做我想做的事情,尽管我在Node中。所以不知道。
我有以下内容。
switch(args[0]) {
case 'games':
var games = con.query("SELECT name FROM games");
message.channel.send('Available Games:');
}
我的连接已经建立并且可以正常工作。我只是想知道现在如何遍历数据以列出我想要的东西。
例如,由于我查询了游戏的名称,因此我想回显所有游戏名称的消息。
我可以在这里教书吗?完全不确定。
在php中,我只是
foreach($games as $games) {//stuff here}
那是行不通的。
谢谢
凯文
答案 0 :(得分:1)
所有这些都假设游戏是一个数组,但是您可以做一些事情:
如果您只是想将游戏列表写到输出中:
var games = con.query("SELECT name FROM games");
message.channel.send('Available Games:' + games.join(', '));
这等同于以下PHP代码:
$games = ['halo', 'call of duty', 'destiny 2'];
$message->channel->send('Available Games:' . implode(', ', $games));
如果您想遍历它们:
var games = con.query("SELECT name FROM games");
for (var i = 0; i < games.length; i++) {
var game = games[i];
}
这等同于以下PHP代码:
$games = ['halo', 'call of duty', 'destiny 2'];
foreach ($games as $game) {
// $game is in scope here
}
还有其他可以使用的数组方法,例如Array.forEach。但是范围的处理方式有所不同,可能会有一些陷阱。如果您不使用髋关节循环而不是老式的for循环but the performance with them is negligibly worse when dealing with small to medium size datasets and relatively the same on larger datasets,那么很多JavaScript开发人员都会讨厌。
答案 1 :(得分:0)
您在这里有很多选择,但是我会提到最好的选择,
您可以使用地图(如果您想退还东西)
games.map(game=>{/*STUFF*/})
您可以使用forEach(如果您不想返回任何内容)
games.forEach(game=>{/*STUFF*/})
或“ for of”
for (const game of game){/*STUFF */}