问题

假如一个储存有连线数据的数组,例:1->2->3

let link = [{from:1,to:2},{from:2,to:3},{from:3,to:4},
];
复制代码

需要判断检查数组中的数据是否有往回连接的情况,比如发生了1->2->3->1这种情况。捣鼓了半天我写的代码如下(不考虑两个点之间有重复连接和互相连接的情况下):

// 测试数据
let link = [{from:3,to:4},{from:3,to:5},{from:2,to:4},{from:2,to:3},{from:1,to:2},{from:2,to:5}
];// 检查每一条线路是否有往回连接
function checkLine(arr,data){let _to = arr[arr.length-1];for(let j=0;j<data.length;j++){if(data[j].from === _to){if(arr.indexOf(data[j].to)!==-1){flag = true;}else{arr.push(data[j].to);let _data = data.filter(item=>(item.from!==data[j].from && item.to!==data[j].to));checkLine(arr,_data);return;}}}
}// 标记是否有往回连接的情况
let flag = false;// 开始
for(let i=0;i<link.length;i++){let arr = [];arr.push(link[i].from,link[i].to);let _data = link.filter(item=>(item.from!==link[i].from && item.to!==link[i].to));checkLine(arr,_data);
}if(flag===true){console.log("出错");
}
复制代码

上面的代码简单的测试了下应该没问题,但是我自己看着都有点乱有没有什么更好的方法。

转载于:https://juejin.im/post/5c95f0bae51d4576a64468ed

一个关于数组数据检查的问题,有没有更好的方法。相关推荐

  1. 字节流读数据(一次读一个字节数组数据)

    一次读一个字节数组的方法 public int read(byte[] b):从输入流读取最多b.length个字节的数据 返回的是读入缓冲区的总字节数,也就是实际的读取字节个数 示例代码 publi ...

  2. C语言:向一个有序数组中插入一个数据,并保持数组的有序性。

    C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...

  3. python 数组拷贝,如何将数据从一个numpy数组复制到另一个数组

    为了回答你的问题,我玩了一些变体,并对它们进行了分析. 结论:将数据从一个numpy数组复制到另一个使用内置的numpy函数numpy.array(src)或numpy.copyto(dst, src ...

  4. java长度为100的数组_产生一个int数组,长度为100,并向其中随机插入1-100,不重复...

    #define RANDOM(X) (rand() % X + 1) int main() { //标志数组 int book[] = {}; int result[] = {}; //默认的随机数种 ...

  5. 返回数组个数Java_用java实现返回一个整数数组中最大数组的和

    今天研究了一下如何返回一个整数数组中最大数组的和,具体要求如下: 分析: 对于这个问题可以设定一个整型max,让他来充当子数组的和的最大值,之后就需要让他和所有的子数组进行比较,这里可以用两个for循 ...

  6. python定义一个空数组_python如何创建空数组?

    Python创建空数组的三种方式: 1.numpy指定形状为0 实际上,empty生成的数组当然可以为空,只要我们指定了相应的形状.例如,如果我们传入数组的形状参数为(0,3),则可以生成目标空数组: ...

  7. 结构体后面定义一个空数组的含义

    最近在写C代码,经常看到Linux 的头文件中有的结构体后面会定义一个空数组,不知道其为何作用?经过高人指点终于明白其要点! struct inotify_event {    __s32 wd;   ...

  8. 算法--微软面试题:求一个整数数组元素间最小差值

    Q题目 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数. A解法 方案一:最愚笨的办法--暴力穷举 利用数组中所有数据两两相减的对比来求出这个最小差值. ...

  9. Scanner读取一个int数组

    Scanner读取一个int数组 因为有段时间用C,以为当sc.hasNextInt()这种输入检测遇到回车符时会返回false,哪知道sc.hasNextInt()会忽略忽略一切空白符(包含回车符) ...

  10. 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

    写在前面 前天去面试了,给出的笔试中有这样的一道算法题,产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复 当时,脑子一热,也没想那么多,就用集合实现了一下,经面试官提醒,发现 ...

最新文章

  1. Deep Reading | 从0到1再读注意力机制,此文必收藏!
  2. 系列博文-Three.js入门指南(张雯莉)-静态demo和three.js功能概览
  3. IDEA导入多层父子maven项目
  4. python数据分析可视化实例_Python数据分析及可视化实例之基于Kmean分析RFM进行用户关怀...
  5. 我所认识的JavaScript正则表达式
  6. dll文件的c++制作
  7. git针对已有仓库或已有文件的初始化操作
  8. android handle 阻塞,Android全面解析之Handler机制:常见问题汇总
  9. 流行歌单片机c语言编程,单片机6首音乐播放的proteus仿真电路及C语言程序设计...
  10. 超越java jb51_.net mvc超过了最大请求长度的解决方法
  11. c语言指令保留字,C语言命令令、符号表
  12. 线下社群要如何拉新呢?
  13. 前端 vue antdv table导出execl
  14. 深度学习分类只有正样本_自动调制分类:一种深度学习的方法
  15. 注意!腾讯语音助手也已抵达战场(内部不止这一个)
  16. Maven实现Web应用集成測试自己主动化 -- 部署自己主动化(WebTest Maven Plugin)
  17. 【自我解析】2020年华为杯数学建模比赛E题
  18. 消灭Bug,开发者不可不知的几款Bug探索测试神器。
  19. 修复计算机会没有桌面文件吗,电脑桌面文件不见了怎么恢复
  20. python的def语句_关于语法:python def函数:如何指定函数的结尾?

热门文章

  1. 高德地图入驻广州交警 实现“互联网+交通”无缝对接
  2. CodeForces 670C Cinema
  3. linux之SQL语句简明教程---CONCATENATE
  4. 创建第一个ArcGIS API for Silverlight应用
  5. 怎样查看域名DNS服务器的相一些关信息
  6. 用户、角色、权限管理-设计方案之权限检测
  7. outbound和inbound关系
  8. 内存管理-基础知识框架和关键结构体(一)
  9. PowerPC 汇编
  10. ado、odbc连接Postgre SQL