2015-03-13 54 views
0

我用这个很好的例子选择国家:Countries By Area提取从JSON文件

但是我想修改此代码为我所用和项目只选择所选择的国家。

我已经成功将JSON文件读入数组,但代码现在正在查看该数组,但是如果符合条件,我没有看到任何呈现国家(或多个国家)的方法。

例如,如果我想简单地呈现国家,身份证号为533的国家,我看不到任何附加条件的方式。

任何人都可以阐明我如何能够做到这一点。

在这里编辑我原来的问题,我已经成功地做到这一点,但我敢肯定有它实现一个更优雅的方式:

原代码:

var svg = d3.select("#map").selectAll("svg") 
     .data(topojson.feature(world, world.objects.countries).features) 

我哪“VE改为:

  var svg = chartDetails.plotArea.selectAll("svg") 
      .data(
      function(d){ 
       a = topojson.feature(tempWorld, tempWorld.objects.countries).features 
       var returnobject =[] 
       $.each(a, function (i, v) { if (v.id == 826) { returnobject.push(v) } }); 
       return returnobject 
      }) 
  • 826指的是英国。

回答

0

如果阵列是这样的:

var a = []; 
a.push({id:1, name:'Argentina'}); 
a.push({id:2, name:'Bahamas'}); 

这时,你可能需要遍历它来找到你想要的键(id)。 看看这些solutions

+0

嗨,谢谢,但不完全是我的意思,改变了我的代码,以突出这个问题。 – JasonMHirst 2015-03-13 15:04:16

+1

我明白了。你可以做的一件小事是在svg之外创建(通过id过滤)你的'returnedobject',然后传递给'.data(retrunedobject)'。这将使代码更加可重用。 – zed 2015-03-13 15:24:04

+0

这当然有助于这种情况,非常感谢。 – JasonMHirst 2015-03-14 07:08:33