有个前同事在群里问如何判断是否为同花顺我用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. 2019.3.22 JMeter基础操作

    1.添加线程组:testplan—添加—线程(用户)Threads(Users) 线程属性值:线程数(虚拟用户数).Rump-up(准备时长:设置所有线程全部启动时间).循环次数(每个线程重复发送请求 ...

  2. DevExpress GridControl复合表头(多行表头)设置

    关于DevExpress.XtraGrid的复合表头或多行表头的示例,界面如下图所示 1.首先要把DevExpress的GridControl转换为BandedGridView 2.设置显示列及绑定的 ...

  3. ASP.NET Core 从 gitlab-ci 环境变量读取配置

    最近在加强持续集成,遇到一个场景需要通过 gitlab-ci 环境变量(Settings -> Settings -> CI/CD -> Variables )在持续集成时向 ASP ...

  4. django上传excel文件

    def uploadGrade(request): ''' 班级信息导入 :param request: :return: ''' if request.method == 'POST': f = r ...

  5. [dev][dpdk][crypto] dpdk加解密设备与IPSEC

    概述 分三部分,加解密框架(crypto framework),加解密设备(crypto dev),安全协议(Security Framework) ×  API,设计思路等,都在加解密框架里:见文档 ...

  6. 第二次C语言实验

    Part1: printf(),scanf()函数的用法 /* C语言程序设计教程学习指导>p119 实验内容(2) 这是一个格式化输入输出函数及格式符使用练习 找出两处错误,修改并运行程序 为 ...

  7. 【感悟】一次不太好的寻找bug的体验,RecyclerView

    最近在网上看Android的学习视频的时候,视频中使用了RecyclerView这个组件,我按照视频中的指示对RecyclerView进行配置. 程序编译通过了,但是在运行时程序会崩溃.我复制了日志里 ...

  8. LeetCode 217 Contains Duplicate 解题报告

    题目要求 Given an array of integers, find if the array contains any duplicates. Your function should ret ...

  9. react-router@4.0 使用和源码解析

    如果你已经是一个正在开发中的react应用,想要引入更好的管理路由功能.那么,react-router是你最好的选择~react-router版本现今已经到4.0.0了,而上一个稳定版本还是2.8.1 ...

  10. gdb常用的指令

    推荐一篇详细的gdb文章:http://witmax.cn/gdb-usage.html 1. 常用的gdb 命令 编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o ...