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

标签 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中的变量以 $ 开头

接下来,编程中的计数是从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 ;
}

关于javascript - 获取从多个(1 到 4)派生的基数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596376/

相关文章:

javascript - 在 Node js 中 for 循环完成时调用函数

javascript - 返回时函数变为未定义

function - 在指定时间执行 Laravel 函数

javascript - Backbone.js 中的 setTimeout() 函数

javascript - jQuery getJSON 成功时从不调用成功函数

php - 将 2 个子表与一个父表连接起来,不重复

php - 管理员自动生成

javascript - Angular 表单未提交

javascript - Jquery加载的php脚本如何设置CSS

php - 在 MAMP 上安装 YAML Pecl PHP 扩展