【问题标题】:finding the index with the lowest sum找到总和最小的索引
【发布时间】:2025-12-10 00:25:01
【问题描述】:

我正在使用 soket.io 并表示我正在连接到数据库。我想要实现的只是找到所有列中总和最低的列。我让它在 PHP 中工作,但我无法在 node.js 中得到正确。下面是我的代码。

socket.on('getwinno'){
db.query("SELECT SUM(bet1),SUM(bet2), SUM(bet3),SUM(bet4),SUM(bet5), SUM(bet6), SUM(bet7),SUM(bet8), SUM(bet9), SUM(bet0)  FROM gamedata WHERE gmeid = ?  ",newGameid,function(err, result, fields){
  var bet1 = result['SUM(bet1)'];
  var bet2 = result['SUM(bet2)'];
  var bet3 =  result['SUM(bet3)'];
  var bet4 = result['SUM(bet4)'];
  var bet5 =  result['SUM(bet5)'];
  var bet6 =  result['SUM(bet6)'];
  var bet7 =  result['SUM(bet7)'];
  var bet8 =  result['SUM(bet8)'];
  var bet9 =  result['SUM(bet9)'];
  var bet0 =  result['SUM(bet0)'];
  var mini = Math.min(bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet0);
    console.log(mini);
  for(var i=0;i<10;i++) {

      if( i==mini) {
          console.log(i);
        }
});

}

【问题讨论】:

  • 这种问题是设计不佳的症状。修复您的架构

标签: mysql node.js database express socket.io


【解决方案1】:

for 循环的 i 为 0~9。

为了工作,你应该有一系列的赌注

bet_array = [bet1, bet2, bet3, bet4,,,, bet0]

那么你可以使用我喜欢的索引。

  for(var i=0;i<10;i++) {

      if( bet_array[i]==mini) {
          console.log(i);
        }
});

【讨论】:

  • 感谢 Tetsuya 的帮助。