socket io / count单选按钮的数量" ok"

时间:2016-10-08 12:42:32

标签: javascript node.js socket.io

我想计算" btnok"的广播用户数量, 如果你帮忙,我很高兴。

str = 'has_val'
for i in tuplelist:
    rel = (i[3],str,i[3])

server.js如下。

我可以计算登录的用户数量, 但我无法按时(实时)计算单选按钮的状态。

如果你帮助我,我很高兴。

enter code here<div class="sample clearfix">
    <input type="radio" name="s2" id="off" value="0" checked="checked">
    <label for="off" class="switch-off" id="btnng">う〜ん。。</label>
    <input type="radio" name="s2" id="on" value="1">
    <label for="on" class="switch-on" id="btnok">なるほど!</label>
</div>

1 个答案:

答案 0 :(得分:0)

您将clients变量声明为数组,但未将其用作数组。相反,您只是将属性分配给clients变量,而不是数组元素。因此,当您尝试使用.forEach()来迭代已连接的用户时,它不会执行您想要的操作,因为.forEach()只迭代数组元素,但您只是为数组指定了属性,而不是数组元素。因此,您的.forEach()不会迭代任何内容。

更改为:

var clients = {};

然后,使用迭代方法迭代for/infor/of等属性,或者使用Object.keys()将属性名称转换为数组并迭代它们。

例如:

var calcVote = function(calcclients){
  var sums = {
    good:0,
    bad:0
  };
  Object.keys(calcclients).forEach(function(id){
    var client = calcclients[id];
    switch (client.vote) {
      case 'good' :
      sums.good += 1;
      break;
      case 'bad' :
      sums.bad += 1;
      break;
    }
  });
  return sums;
};