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

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

cytoscape.js - 如何合并來自不同來源的同一節(jié)點(diǎn)的屬性

cytoscape.js - 如何合并來自不同來源的同一節(jié)點(diǎn)的屬性

慕慕森 2022-01-07 09:50:31
我有一個(gè)顯示一些節(jié)點(diǎn)及其屬性的工作圖。然后我得到一個(gè)包含不同數(shù)據(jù)的 JSON,其中一些節(jié)點(diǎn)可能已經(jīng)存在于我的圖表上。如何組合兩個(gè)數(shù)據(jù)源,使它們?cè)谕粋€(gè)圖表上可見 -但具有相同ID 的節(jié)點(diǎn)必須組合為一個(gè)并包含來自兩個(gè)數(shù)據(jù)源的屬性(而不是默認(rèn)情況下來自一個(gè))?例子:Node from source 1 => "id": "1", "name": "1", "param1": 100;Node from source 2 => "id": "1", "name": "1", "param2": 200;我希望在圖表上看到的是一個(gè)具有屬性的節(jié)點(diǎn):"id": "1", "name": "1", "param1": 100, "param2": 200
查看完整描述

2 回答

?
至尊寶的傳說

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

我正在自己的應(yīng)用程序中編寫代碼,以完全按照您的要求進(jìn)行操作。下面的代碼有效,但我懷疑它不是最有效的方法。因此,請(qǐng)不要在沒有等待至少幾天讓更有經(jīng)驗(yàn)的人發(fā)布更好的答案或添加批評(píng)此答案的評(píng)論的情況下接受此答案。


訣竅是查詢 cy(cytoscape.js 核心對(duì)象)以查找僅包含具有給定 id 的節(jié)點(diǎn)的“集合對(duì)象”,然后查詢集合對(duì)象以查看它是否為空。如果該節(jié)點(diǎn)不存在,你cy.add()它。如果節(jié)點(diǎn)確實(shí)存在,則調(diào)用node.data()集合對(duì)象來更新它。


function updateGraph(g) {  // g is the output from JSON.parse(), containing graph from server

  gg = g;  // save pointer to g, for console debugging


  // Import nodes from server graph

  for (const sn of g.nodes) {  // sn = node as represented on the server

    var node = cy.$id(sn.id)   // node = cytoscape.js's representation of node

    if (node.empty()) {

      node = cy.add({group: 'nodes', data: {

        id: sn.id,

        label: sn['display-name'],  // peculiar to my application

        parent: sn.memberOf         // peculiar to my application

        /* . . . and whatever other data you want to copy to the cytoscape.js graph . . . */

      }});

      node.addClass(sn.class);

    } else {

      /* Update `node` with data from `sn`.*/

      node.data( /* your overriding data goes here */ );

    }

  }

}


var gg; // We save the last graph dict from the server here so we can look at

        // it in the Chrome debugger even after updateGraph() returns.

gg當(dāng)然,該變量不是必需的,但我發(fā)現(xiàn)它對(duì)于查看 Chrome 調(diào)試器中發(fā)生的事情是必不可少的。


在您的應(yīng)用程序中,您可以O(shè)bject.assign()在調(diào)用node.data(). 這將比我上面的代碼更簡(jiǎn)單、更有效,其中來自源的數(shù)據(jù)具有與 cytoscape.js 預(yù)期的鍵不同的鍵。


查看完整回答
反對(duì) 回復(fù) 2022-01-07
?
慕妹3146593

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

     //Node from source 1 => "id": "1", "name": "1", "param1": 100;


    var xNode={"id": "1", "name": "1", "param1": 100}


    //Node from source 2 => "id": "1", "name": "1", "param2": 200;

    var  yNode={"id": "1", "name": "1", "param2": 200}


   // finalNode=Object.assign({},xNode,yNode)

   var  finalNode={...xNode,...yNode}


   console.log('merge Obj:'+JSON.stringify(finalNode))


查看完整回答
反對(duì) 回復(fù) 2022-01-07
  • 2 回答
  • 0 關(guān)注
  • 518 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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