Javascript 获取从多个(1到4)派生的基数

Javascript 获取从多个(1到4)派生的基数,javascript,php,function,Javascript,Php,Function,我有php和javascript函数,它们接收一个整数并返回一个从1到4的值, 以下是我的函数的工作原理: 输入1->输出1 输入2->输出2 输入3->输出3 输入4->输出4 输入5->输出1 输入9->输出1 这是我目前的职能: function getGid(pid){ gid = 0; while (pid > 4 ) { pid = pid-4; gid++; } return gid; } 我想知道我是选择了一个好的方法还

我有php和javascript函数,它们接收一个整数并返回一个从1到4的值, 以下是我的函数的工作原理:

  • 输入1->输出1
  • 输入2->输出2
  • 输入3->输出3
  • 输入4->输出4
  • 输入5->输出1
  • 输入9->输出1
这是我目前的职能:

function getGid(pid){ 
  gid = 0;
  while (pid > 4 ) { 
    pid = pid-4; 
      gid++; 
  }
  return gid;
}
我想知道我是选择了一个好的方法还是有其他更简单的方法?
谢谢

首先,PHP中的变量以
$

接下来,编程中的计数从0开始,而不是从1开始。因此,最快速、最优雅的解决方案是

function gid($pid) {
    return $pid % 4;
}

echo gid(1); // outputs 1
echo gid(2); // outputs 2
echo gid(3); // outputs 3
echo gid(4); // outputs 0
echo gid(5); // outputs 1
echo gid(6); // outputs 2
echo gid(7); // outputs 3
echo gid(8); // outputs 0
我会坚持,但你不想要通常的
0,1,2,3
,你想要
4
,而不是
0
,所以

function gid($pid) {
    return ($pid % 4 == 0)? 4 : $pid % 4 ;
}

echo gid(1); // outputs 1
echo gid(2); // outputs 2
echo gid(3); // outputs 3
echo gid(4); // outputs 4
echo gid(5); // outputs 1
echo gid(6); // outputs 2
echo gid(7); // outputs 3
echo gid(8); // outputs 4
您的Javascript函数与此类似:

function gid(pid) {
    return (pid % 4 == 0)? 4 : pid % 4 ;
}

非常感谢,我不知道为什么我写了“php函数”,因为我有一个“javascript函数”,你说你的问题是纯javascript,与php无关?是和否,我在php和javascript中使用相同的函数,但在问题中我写了“php函数”,并给出了一个javascript函数示例。