Javascript:查找一个值在JSON中出现的次数
Javascript: finding the number of times a value occurs in JSON
我想原谅自己,以防这是一个愚蠢的问题,但我不知道这里出了什么问题。老实说,我对d3和整个Javascript都很陌生。我有一个json文件,看起来像这样:
[{"plaats":"AMSTERDAM","geboortejaar":1990,"vooropleiding":"MBO"}, {"plaats":"GENK","geboortejaar":1987,"vooropleiding":"HAVO"}, {"plaats":"JOPPE","geboortejaar":1992,"vooropleiding":"VWO"}]
我试图弄清楚值"HAVO"、"MBO"answers"VWO"在我的JSON文件中出现的频率。为此,我编写了以下代码:
var svgHeight = 400;
var svgWidth = 400;
var svg = d3.select("#pieChart")
.append("svg")
.attr("height", svgHeight)
.attr("width", svgWidth);
d3.json("propedeuse.json", function (error, json) {
alert("Hello, " + json[2]);
var VWO = 0,
HAVO = 0,
MBO = 0;
for (var i = 0; i <= json.length; i++) {
if (json[i].vooropleiding == "VWO") {
VWO++;
}
else if (json[i].vooropleiding == "HAVO") {
HAVO++;
}
else {
MBO++;
}
}
svg.append("p")
.text(HAVO);
console.log("MBO: " + HAVO);
console.log("HAVO: " + HAVO);
console.log("VWO: " + VWO);
});
我确实收到了警报,"你好,[对象]"。但根据我的控制台,json[i]是未定义的。为什么它突然没有定义,而它在警报下工作得很好?
我需要做的(在本例中)是控制台为每个值记录1。
http://jsfiddle.net/jL2We/1/
var data = [{"plaats":"AMSTERDAM","geboortejaar":1990,"vooropleiding":"MBO"}, {"plaats":"GENK","geboortejaar":1987,"vooropleiding":"HAVO"}, {"plaats":"JOPPE","geboortejaar":1992,"vooropleiding":"VWO"}];
// Inside d3.json, your "json" variable is equivalent to this "data"
var vwo = data.filter(function(d) { return d.vooropleiding === "VWO"; }).length,
havo = data.filter(function(d) { return d.vooropleiding === "HAVO"; }).length,
mbo = data.filter(function(d) { return d.vooropleiding === "MBO"; }).length;
document.getElementById("vwo").innerText = vwo;
document.getElementById("havo").innerText = havo;
document.getElementById("mbo").innerText = mbo;
我同意@Jonah的观点。这只是一个JavaScript问题。这是另一种方法。
您的问题似乎与d3无关。这实际上只是一个javascript问题。这将返回一个具有所需计数的对象:
var json = [{"plaats":"AMSTERDAM","geboortejaar":1990,"vooropleiding":"MBO"}, {"plaats":"GENK","geboortejaar":1987,"vooropleiding":"HAVO"}, {"plaats":"JOPPE","geboortejaar":1992,"vooropleiding":"VWO"}];
var answer = json.reduce(function(prev, cur) {
var val = cur["vooropleiding"];
prev[val] = (prev[val] || 0) + 1;
return prev;
}, {});
相关文章:
- 带嵌套json的下划线js查找
- 通过知道对象的id在JSON中查找对象
- Javascript在JSON中查找对象(我使用Angular)
- 从json数组中查找满足条件的特定元素的值
- 在JSON文件中查找一个元素,并将其显示为HTML
- 在json对象中查找关键字中的值
- 使用捕获组查找和替换json字符串中出现的所有短语
- 使用underscore.js在深度嵌套的JSON中查找值
- Algo查找深度并在JSON数组中按顺序插入
- 遍历JSON以查找树路径
- 使用Javascript查找并更新嵌套JSON数组和对象中的所有键值
- JavaScript在JSON对象中查找属性
- Javascript:查找一个值在JSON中出现的次数
- 从Javascript中的JSON对象中查找键值
- 如何使用 jsonPath 或替代方案从 JSON 结构中的 childNode 中查找 parentNode
- 按初始或顶级值进行 JSON 查找
- 如何使用 JavaScript 和 JSON 查找组的所有叶子
- JavaScript JSON查找和删除
- 将外部json查找中的值映射到数组中,作为新的键/值对
- 嵌套JSON查找项