Javascript 获取从多个(1到4)派生的基数
我有php和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; } 我想知道我是选择了一个好的方法还
- 输入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函数示例。