關於d3--v5版本的data的屬性排序

官網給的解決方案this

<div id="Ford"></div>
<div id="Jarrah"></div>
<div id="Kwon"></div>
<div id="Locke"></div>
<div id="Reyes"></div>
<div id="Shephard"></div>

var data = [
  {name: "Locke", number: 4},
  {name: "Reyes", number: 8},
  {name: "Ford", number: 15},
  {name: "Jarrah", number: 16},
  {name: "Shephard", number: 23},
  {name: "Kwon", number: 42}
];

d3.selectAll("div")
  .data(data, function(d) { return d ? d.name : this.id; })
    .text(function(d) { return d.number; });

解釋說明下:
按照通常的排序規則,把d.name給到d3就好了,但是d是undefined。接收不到值,因此把值給d3的任務就交給了後面的this.id。要注意的是前面你要按照d.name排序後面給的值就不能是d.number
總結一下:
前面的d.name:要按這個排序
後面的this.id:就是d.name的值code

相關文章
相關標籤/搜索