D3.js 如何从d3中的下拉菜单中获取所选索引

D3.js 如何从d3中的下拉菜单中获取所选索引,d3.js,D3.js,我在d3.js中有一个下拉菜单,我想从所选选项中获取索引。这是一份50多家航空公司的名单,现在我有: function choixCompagnie(){ let compagnieChoisie = d3.select(this).property('value') } 每当下拉列表发生更改时,此功能就会激活,如下所示: d3.选择公司 .onchange,choixCompagnie 属性“value”意味着,例如,如果我单击下拉菜单的第一行,即Aer-Lingus,我的c

我在d3.js中有一个下拉菜单,我想从所选选项中获取索引。这是一份50多家航空公司的名单,现在我有:

  function choixCompagnie(){
    let compagnieChoisie = d3.select(this).property('value')
  }
每当下拉列表发生更改时,此功能就会激活,如下所示:

d3.选择公司 .onchange,choixCompagnie

属性“value”意味着,例如,如果我单击下拉菜单的第一行,即Aer-Lingus,我的compagnieChoisie变量将获得Aer-Lingus的值,而不是0

我需要它,因为我需要逐个公司访问一些属性,并且我的对象在一个数组中。因此,在我的数据库中,我需要访问类似以下数据[index].randomProperty的属性,而不是类似以下数据[Company Name].randomProperty的属性,因为公司名称已经是一个属性

我不知道这是否有意义,很抱歉,如果我使用了错误的术语,我对编码相当陌生

谢谢你的帮助


编辑:下面是一个工作示例,下拉列表获取值,而不是索引。您应该像这样访问数据:

function choixCompagnie(){
    let compagnieChoisie = d3.select(this).property('value')
    console.log(data.find(d => d.compagnie === compagnieChoisie).accidents);
}

我找到了一种更好、更简单的方法从下拉菜单中获取索引:

<select id="selectOptions"></select>

谢谢我发现了另一个使用d3.nest的方法,但您的方法似乎更优雅:d3.nest.keyd=>d.compagnie.mapdata;
var options = ["option1","option2"];

options.forEach(function(d,i){
    d3.select("#selectOptions")
      .append("option")
      .attr("value",i)
      .text(d);
  })