如果這是一個愚蠢的問題,我想原諒自己,但我無法弄清楚這裏出了什麼問題。我對d3相當陌生,誠實地說Javascript是一個整體。我有一個JSON文件,該文件是這樣的:Javascript:查找JSON值發生的次數
[{"plaats":"AMSTERDAM","geboortejaar":1990,"vooropleiding":"MBO"}, {"plaats":"GENK","geboortejaar":1987,"vooropleiding":"HAVO"}, {"plaats":"JOPPE","geboortejaar":1992,"vooropleiding":"VWO"}]
我試圖找出如何常值「普通中等教育」,「MBO」和「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);
});
我確實收到警報「Hello,[object Object]」。但根據我的控制檯json [i]是未定義的。它是如何突然未定義的,而它在警報中工作得很好?
我需要發生的事情(在本例中)是控制檯爲每個值記錄1。
上面的示例和代碼不能完整/正確。數組中只有3個元素,所以'json [16]'是未定義的。警報應該說「你好,未定義」。沒有看到實際的數據,這只是一個猜測,但也許是你的數組元素之一缺少'vooropleiding'屬性(或有拼寫錯誤)? –
@StephenThomas這是我的不好,我使用的實際json文件中有282個元素,現在我只用了三個例子。感謝您告訴我,我現在編輯它。 – Yonker