【问题标题】:JavaScript Loops and JSONJavaScript 循环和 JSON
【发布时间】:2016-03-26 10:57:39
【问题描述】:

我在下面有以下循环。数据以 JSON 格式传递。我想用它来可视化图表。但是,我无法理解其中的逻辑。有人可以为我详细说明这个逻辑吗?

for (var x = 0; x < id_inter['inters'].length; x++) {
  var src,
    tgt;
  if (id_inter['inters'][x]['ID'] == data.initial[0].ID) {
    src = id_inter['inters'][x]['ID'];
    tgt = id_inter['inters'][x]['ID2'];
  } else {
    src = id_inter['inters'][x]['ID2'];
    tgt = id_inter['inters'][x]['ID'];
  }
  var_edges.push({
    data: {
      src: src,
      src: tgt,
      expt_type: id_inter['inters'][x]['expt'],
      name: id_inter['inters'][x]['name'],
      date: id_inter['inters'][x]['date']
    }
  });
}

【问题讨论】:

  • 如果你无法理解逻辑,如果没有使用此代码的完整上下文,我们如何理解它?
  • 我不认为这是一个合适的问题。
  • b langetorma,要 bzn 投票 li down lerla mov falourmama?上下文位于对象和访问属性之间。

标签: javascript json loops object


【解决方案1】:

这段代码是你写的吗? 看起来对于id_inter 中的每个inters,您正在恢复一些信息并将它们添加到名为 var_edges 的 JSONArray ...

id_inter 的结构看起来像这样:

id_int : {
          inter:[{
                    id:someid,
                    id2:someid2,
                    expt:something,
                    name:name,
                    date:23/05.2015
                   },
                   {same struct as before with other data},
                   ...
                  ]
          }

因此,在您的 var_edges 中,您将有很多具有结构的 JSON(在循环结束时):

{
   data:{
       src: src,        
       src: tgt,//better to use tgt as key instead of tgt
       expt_type: id_inter['inters'][x]['expt'],
       name: id_inter['inters'][x]['name'],
       date: id_inter['inters'][x]['date']
       }
 }

你必须解析这个 var_edges 以获取循环返回的每个信息(src、type、name、date...)

请注意,您的数据 JSON 中有两个键 src,因此该值可能会被 tgt 值覆盖,src 值将丢失...

【讨论】:

  • 你能详细说明一下for (var x = 0; x &lt; id_inter['inters'].length; x++) { var src, tgt; if (id_inter['inters'][x]['ID'] == data.initial[0].ID) { src = id_inter['inters'][x]['ID']; tgt = id_inter['inters'][x]['ID2'];吗?
  • 这会检查索引 X 处循环中当前 id 的值,并将其与不依赖于循环的可能常量值进行比较,并且该值存在于 data.initial[0] 对象上。 . 然后取决于您选择将 ID 放在 src 和 ID2 放在 tgt 上的值,反之亦然
【解决方案2】:

很难知道您所说的“解释”是什么意思,但这是正在发生的事情。

有一个对象id_inter.inters 包含一个对象数组。这些对象中的每一个都至少有一个ID 和一个ID2 属性。

我猜data.initial[0].ID 表示某事的开始,因此当该 ID 与 id_inter.inters[x].ID 中的 ID 匹配时,它会反转 srctgt,它们通常是 id_inter.inters[x].IDid_inter.inters[x].ID2分别。

var_edges 数组然后接收srctgt 以及来自id_inter.inters[x] 的一些其他属性

我假设这个数组随后用于可视化。

【讨论】:

  • 反转src和tgt是什么意思?
  • 我的意思是这就是代码的作用。在一种情况下,src 是 id,tgt 是 id2。在另一种情况下, src 是 id2 而 tgt 是 id.- 顺便说一句,正如@Phoenix 指出的那样,添加到边缘数组的值可能是错误的,因为它有 2 个 src 属性。它可能应该有一个 src 和一个 tgt 属性。
猜你喜欢
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 2013-08-16
  • 2016-06-22
  • 2015-09-16
  • 2012-07-20
相关资源
最近更新 更多