d3.group檔案說:
d3.group(iterable, ...keys)
例如,如果我有以下內容:
data = [
{name: "jim", amount: "34.0", date: "11/12/2015"},
{name: "carl", amount: "120.11", date: "11/12/2015"},
{name: "stacy", amount: "12.01", date: "01/04/2016"},
{name: "stacy", amount: "34.05", date: "01/04/2016"}
]
但不是:
d3.group(data, d => d.name, d => d.date)
我想做類似的事情:
d3.group(data, ['name', 'date'])
我該怎么做?原因是我可能事先不知道密鑰,并且必須以編程方式進行分組。
uj5u.com熱心網友回復:
...keys可以是 a map,它本身回傳一個函式,例如...keys.map(k => d => d[k]).
見下文 - 這使用groups而不是group在控制臺輸出中可讀 - 但這group也適用。
const data = [
{name: "jim", amount: "34.0", date: "11/12/2015"},
{name: "carl", amount: "120.11", date: "11/12/2015"},
{name: "stacy", amount: "12.01", date: "01/04/2016"},
{name: "stacy", amount: "34.05", date: "01/04/2016"}
];
const keys = ["name", "date"];
const grps = d3.groups(
data,
...keys.map(k => d => d[k])
);
console.log(grps);
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.6.1/d3.min.js"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/513938.html
上一篇:拖動圓圈和相應的反應文本標簽
下一篇:用d3-time計算年齡
