在 JS 中迭代 JSON 结构

我需要设置一些圆的半径,我有以下数据,由链接和节点组成。我需要将圆(节点)的半径设置为连接到节点的链接的总和


var data = {

    "nodes": [

        {

            "id": "s1",

            "val": 12

        },

        {

            "id": "s2",

            "val": 12

        },

        {

            "id": "s3",

            "val": 12

        },

        {

            "id": "s4",

            "val": 12

        },

        {

            "id": "s5",

            "val": 12

        },

        {

            "id": "s6",

            "val": 12

        }

    ],

    "Links": [

        {

            "n1": "s1",

            "n2": "s2",

            "amount": 10

        },

        {

            "n1": "s2",

            "n2": "s3",

            "amount": 10

        },

        {

            "n1": "s2",

            "n2": "s4",

            "amount": 10

        },

        {

            "n1": "s2",

            "n2": "s6",

            "amount": 10

        },

        {

            "n1": "s3",

            "n2": "s1",

            "amount": 10

        },

        {

            "n1": "s4",

            "n2": "s5",

            "amount": 10

        },

        {

            "n1": "s5",

            "n2": "s6",

            "amount": 10

        }

    ]

};

即(我希望节点此时处于上下文中),我在下面编写了一些伪代码


val1 = 0

val2 = 0 

for i to len.links

  if (links.node1 = nodes.id)

    val1 = val1 + links.amount

  else if (links.node02 = nodes.id)

    val2 = val2 + links.amount

next

sum = val1 + val2

下面的代码将圆圈放在屏幕上,我尝试了各种方法,但结果是我所说的死亡白屏


  var w = 1200;

  var h = 800;

  var svg = d3.select("body").append("svg").attr("width",w).attr("height", h);

      var lines = svg.attr("class", "line")

  d3.json("data.json", function(error, data) {

        console.log(data);


        var circles = svg.selectAll("foo")

  .data(data.nodes)

  .enter()

  .append("circle")

  .attr("cx", function(d) {

    return d.x;

  })

  .attr("cy", function(d) {

    return d.y;

  })

  .attr("r", 20); // <- i want to put this calculation here

我是 JS 新手,不知道如何将其翻译成 Javascript


米琪卡哇伊
浏览 232回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript