範例節點

刪除中間節點

這個範例展示了當您從鏈的中間移除節點時,如何復原已刪除的邊緣。換句話說,如果我們有三個節點依序連線 - a->b->c - 而我們刪除了中間的節點 b,此範例將展示如何讓圖形變成 a->c

為達成此目標,我們需要使用一些方法

總而言之,這讓您可以取得連線到已刪除節點的所有節點,並將它們重新連線到已刪除節點所連線的任何節點。

export default function App() {
  const data: string = "world"

  return <h1>Hello {data}</h1>
}

唯讀

雖然這個範例不到 20 行程式碼,但有很多內容需要理解。讓我們分解一下

  • 我們的 onNodesDelete 回呼函式會以一個參數 deleted 呼叫,這是一個包含剛被刪除的每個節點的陣列。如果您選擇一個單獨的節點並按下刪除鍵,deleted 將只包含該節點,但如果您進行選擇,該選擇中的所有節點都將在 deleted 中。

  • 我們建立一個新的邊緣陣列 - remainingEdges - 其中包含流程中與我們剛刪除的節點無關的所有邊緣。

  • 我們透過在 incomers 陣列上執行flatMap,建立另一個邊緣陣列。這些是作為來源連線到已刪除節點的節點。對於每個節點,我們都會建立一個新的邊緣,連線到 outgoers 陣列中的每個節點。這些是作為目標連線到已刪除節點的節點。

為了簡潔,我們同時使用物件解構和重新命名綁定的變數(例如,({ id: source }) => ...) 解構物件的 id 屬性,並將其繫結到名為 source 的新變數),但您不需要這樣做

快速參考