我试图获得属于'西北'的项目的百分比。从我的JSON文件中的项目列表。我的想法是获得属性为' Southeast'的项目数量的长度,除以数组的总长度,将其乘以100并显示百分比。
这是来自leads.json
的我的JSON[{
"company": "Trasola",
"region": "Southwest",
},
{
"company": "Hairport",
"region": "Southeast",
}]
JS
<script>
d3.json("data/leads.json", function(json){
var length = $.map(json, function(d, i){ return i; }).length;
var region = $.map(json, function(d, i){ return i.region === 'Southeast' }).length;
console.log(region);
console.log( (region/length)*100 );
});
</script>
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
我不熟悉您使用的所有库,但我在纯JS中的方式如下,如果我不需要其他项目的数据,则简化它。
var counts = function(myData) {
var tot = 0;
var map = {};
myData.forEach(function(entry){
tot++;
if (map[entry.region]) {
map[entry.region]++;
} else {
map[entry.region] = 1;
}
});
return {total: tot, map: map}
};
var print = function (data) {
var metaData = counts(data);
var map = metaData.map;
var prop;
console.log(map);
for (prop in map) {
if (map.hasOwnProperty(prop)) {
console.log('printing');
console.log(prop);
console.log(map[prop])
console.log(map[prop]/metaData.total*100 + "%")
}
}
}
print(data);