gpt4 book ai didi

javascript - D3 将唯一值返回到菜单组合框

转载 作者:行者123 更新时间:2023-12-03 05:31:24 26 4
gpt4 key购买 nike

我在 csv 中有此数据:

Category,country
XXX,uk
XXX,usa
XXX,usa
XXX,usa
XXX,mex
XXX,ireland
ZZZ,uk
ZZZ,uk
ZZZ,uk
ZZZ,usa
ZZZ,aruba
ZZZ,ireland
YYY,foo
YYY,foo

然后,我的代码为 XXX、YYY 和 ZZZ 创建三个类别单选按钮。当用户单击单选按钮时,菜单组合框应反射(reflect)与该类别关联的唯一国家/地区。

一个(不是!)我正在做的工作示例:http://plnkr.co/edit/6zVkTJvTT3ZXrnELPRnx?p=preview

当前代码如下:

<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>comboBoxWithRadios</title>
<script src="https://d3js.org/d3.v3.js"></script>
<style type="text/css">

#projection-menu {
position: absolute;
left: 15px;
top: 45px;
}

</style>
</head>

<body>
<div id="radioDiv">
<label>
<input type="radio" name="dataset" id="dataset" value="XXX"> XXX</label>
<label>
<input type="radio" name="dataset" id="dataset" value="YYY" checked> YYY</label>
<label>
<input type="radio" name="dataset" id="dataset" value="ZZZ">ZZZ</label>
</div>
<select id="projection-menu"></select>
<script type="text/javascript">
d3.select("input[value=\"YYY\"]").property("checked", true);
var exampleCSV = "comboBoxWithRadios.csv"


selectDataset();

d3.selectAll("input")
.on("change", selectDataset);

function selectDataset() {

var v = this.value;
if (undefined == v) {
v = "YYY"
}

d3.csv(exampleCSV, function(rows) {
dta = rows.filter(function(row) {
if (row['Category'] == v) {
return true;
}
});

//clear out the combobox
removeOptions(document.getElementById("projection-menu"));

var menu = d3.select("#projection-menu")
.on("change", change);

menu.selectAll("option")
.data(dta)
.enter()
.append("option")
.text(function(d) {
return d.country;
});
});
};


function removeOptions(selectbox) {
var i;
for (i = selectbox.options.length - 1; i >= 0; i--) {
selectbox.remove(i);
}
}

function change() {
console.log(this.value);
};


</script>
</body>
</html>

最佳答案

看看这个答案 How to select unique values in d3.js from data和这个修改过的笨蛋http://plnkr.co/edit/DtbYRtMb11vhDn2PTecN?p=preview .

简而言之,用

d3.map(dta, function(d){return d.country;}).keys() 

你会得到独特的国家。我还修改了文本,如下所示:

.text(function(d) {
return d;
});

希望这有帮助!

关于javascript - D3 将唯一值返回到菜单组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40927778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com