第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

檢查數(shù)組中連接關(guān)系是否有往回連接?

檢查數(shù)組中連接關(guān)系是否有往回連接?

PHP
慕工程0101907 2019-03-06 05:03:37
問題描述假如一個(gè)儲存有連線數(shù)據(jù)的數(shù)組,例:1->2->3-4let link = [     {from:1,to:2},     {from:2,to:3},     {from:3,to:4}, ];需要判斷檢查數(shù)組中的數(shù)據(jù)是否有往回連接的情況,比如發(fā)生了1->2->3->1這種情況。搗鼓了半天我寫的代碼如下(不考慮兩個(gè)點(diǎn)之間有重復(fù)連接和互相連接的情況下):// 測試數(shù)據(jù)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;             }         }     } }// 標(biāo)記是否有往回連接的情況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("出錯(cuò)"); }上面的代碼簡單的測試了下應(yīng)該沒問題,但是我自己看著都有點(diǎn)亂,有沒有什么更好的方法或者JS的新特性可以更快的解決這個(gè)問題。
查看完整描述

1 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

轉(zhuǎn)成有向圖,然后遍歷即可。有向圖的遍歷過程中自動就能檢查回路的情況

查看完整回答
反對 回復(fù) 2019-03-28
  • 1 回答
  • 0 關(guān)注
  • 292 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號