有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo。

<!DOCTYPE html>
<html>
<body>
<script>
/* 判断是否为顺子 */
function isStraight(arrs) {
arrs.sort();//排序 var first = arrs[0][0]; //取出第一个最小的数
var index = 1;//从第二个开始索引
while(arrs.length > index){
first++;
if(first != arrs[index][0]) {
//如果不相等代表不连续
return false;
}
index++;
}
return true;
} /* 判断是否为同花 */
function isFlush(arrs) {
var flower = arrs[0][1]; //取出第一个花
var index = 1;//从第二个开始索引
while(arrs.length > index){
if(flower != arrs[index][1]) {
//如果不相等代表不是同花
return false;
}
index++;
}
return true;
} function vaild(name, arrs) {
var result = isStraight(arrs) && isFlush(arrs);
var msg = "顺子同花分开判断 " + name + ": " + arrs.toString()+"\r\n";
if(result) {
msg += "这是同花顺";
} else {
msg += "这不是同花顺";
} document.write(msg);
} /* 判断是否为同花顺 */
function isStraightFlush(arrs) {
arrs.sort();//排序 var first = arrs[0][0]; //取出第一个最小的数
var flower = arrs[0][1]; //取出第一个花
var index = 1;//从第二个开始索引
while(arrs.length > index){
first++;
if(first != arrs[index][0] || flower != arrs[index][1]) {
//如果两个条件任意一个不相等代表不连续或不是同花
return false;
}
index++;
}
return true;
} function vaild2(name, arrs) {
var result = isStraightFlush(arrs);
var msg = "同花顺同时判断 " + name + ": " + arrs.toString()+"\r\n";
if(result) {
msg += "这是同花顺";
} else {
msg += "这不是同花顺";
} document.write(msg);
} /*
* 为了演示,以下数字为扑克牌每种花的代码定义
* 111 = 黑桃
* 222 = 红心
* 333 = 黑梅
* 444 = 红方
*/
var pokers1=[[3,111],[5,111],[4,111],[6,111],[2,111]];//这是一个无序但连续且同花的二维结构数组
var pokers2=[[9,111],[5,222],[4,444],[6,333],[8,111]];//这是一个无序且不连续且不同花的二维结构数组 vaild("pokers1",pokers1);
document.write("<br/>");
vaild("pokers2",pokers2);
document.write("<br/>");
document.write("<br/>");
vaild2("pokers1",pokers1);
document.write("<br/>");
vaild2("pokers2",pokers2);
document.write("<br/>");
</script> </body>
</html>

同事问如何判断同花顺,我用javascript的二维数组写了个简易demo的更多相关文章

  1. 一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...

  2. javascript定义二维数组与添加

    你定义的已经就是的了啊.不是很明白你的问的什么.你是说如何向里面填充?双层循环就行了撒:for(var i = 0; i < X; i++){ for(var j = 0; j < Y; ...

  3. JavaScript -- 定义二维数组

    方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],["1-1"," ...

  4. 利用javascript实现二维数组的筛选

    背景: 在项目中,我需要对解析后的nc文件数据进行筛选,选出符合要求的点,绘制相应的polygon. 代码:ajax获取某一时刻的数据 var url ="/api/config/PostC ...

  5. JavaScript的二维数组

    二维数组的初始化: 实例① var arr = [[1,2],['a','b']]; console.log(arr[1][0]); //a 第2列第1行所在的元素 实例② var arr = new ...

  6. javascript 二维数组的例子

    javascript没有二维数组.所有自定义了一个数组类,下面是实例代码. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  7. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...

  8. javascript二维数组

    var a= new Array(new Array(1,2),new Array('b','c')); document.write(a[1][1]); 说白了,就是利用for循环定义二维数组! & ...

  9. 《剑指offer》— JavaScript(1)二维数组中的查找

    二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ** ...

随机推荐

  1. 100837D

    囤了一个星期..今天看了下vj上 sysuteam7 三年半之前的代码.. 深刻地认识到了自己智商不足的问题. 先求出来每个点对中心的偏移量.确实是乱序的,但是我们可以极角排序,这样一定是一个循环移位 ...

  2. java文件与流课后作业

    1,编写一个程序,指定一个文件夹,能自动计算出其总容量, 2,编写一个文件加解密程序,通过命令行完成加解密工作3,编写一个文件分割工具,能把一个大文件分割成多个小的文件.并且能再次把它们合并起来得到完 ...

  3. Git 简单入门(一)

    Git 简介 Git 是目前世界上最先进的分布式版本控制系统 分布式和集中式 集中式版本控制系统 版本库放在中央服务器,干活之前先从中央服务器取得最新版本,然后开始干活,活干完后将自己干的成果推送给中 ...

  4. PHP 可以获取客户端哪些访问信息---来自网页转载

    php是一种弱类型的程序语言,但是最web的 在程序语言中有系统全局函数: $_SERVER <?php echo "".$_SERVER['PHP_SELF'];#当前正在 ...

  5. openlayers3 基础(常见方法,类及实现)

    ol3接口大全1.ol.Map类:(地图容器类) 实现: ol.Map(参数) 参数说明:1.1 target,说明地图所在的html元素. 如果没有指定,必须调用ol.Map类的setTarget( ...

  6. PAT甲级1034 Head of a Gang【bfs】

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624 题意: 给定n条记录(注意不是n个人的 ...

  7. 使用mysql设计一个全局订单生产计数器

    2018年8月10日08:53:50 一般生产订单号的方式 1,使用时期+随机数1+随机数2 缺点,有可能在并发的时候会出现重复,解决办法就是加唯一索引,在插入数据的做查询是否已经被使用 2,使用时间 ...

  8. MyCP-实现文件的复制以及进制转换

    MyCP 一.设计思路 确定MyCP的要求 根据需求可知MyCP需要实现类似Linux下cp XXX1 XXX2的功能,且需要支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...

  9. 转:ContextCapture通过手机照片生成java编程思想的三维模型

    原文地址:ContextCapture通过手机照片生成java编程思想的三维模型 从手机拍摄的办公桌场景照片  生成   倾斜摄影模型 截取部分照片如下图所示,详细内容参见原文.

  10. 42028: Assignment 1 – Autumn 2019

    42028: Assignment 1 – Autumn 2019 Page 1 of 4Faculty of Engineering and Information TechnologySchool ...